J'ai un problème avec group by
, je souhaite sélectionner plusieurs colonnes mais les regrouper par une seule colonne. La requête ci-dessous est ce que j'ai essayé, mais elle m'a donné une erreur.
SELECT Rls.RoleName,Pro.[FirstName],Pro.[LastName],Count(UR.[RoleId]) as [Count]
from [b.website-sitecore-core].[dbo].[aspnet_UsersInRoles] UR
inner join [b.website-professional-au].[dbo].[Profile] Pro
on UR.UserId = Pro.Id
inner join [b.website-sitecore-core].[dbo].[aspnet_Roles] Rls
on Rls.RoleId = UR.RoleId
inner join [b.website-professional-au].[dbo].[Gender] Gn
on gn.Id = pro.GenderId
GROUP BY Rls.RoleName;
sql-server
group-by
Nayeem Mansoori
la source
la source
GROUP BY A,B,C
peut être totalement différent de ce que vous souhaitez obtenir par rapport àGROUP BY A
. et aussi, généralement, nous ne pouvons pas utiliser une fonction d'agrégation pour obtenir la valeur de colonne associée. vérifier cette réponse comme une solutionRemarque: Cette réponse est destinée à compléter la réponse de @Lukas Eder
S'il y a plusieurs valeurs présentes pour les champs
SELECT
éd mais un champ que vous souhaitezGROUP BY
, vous pouvez plutôt saisir la ligne de correspondance supérieure, plutôt que d'attendre le retour d'une agrégation (MAX
).si vous voulez que TOUTES les valeurs retournent dans ces autres colonnes, mais que vous vouliez la réduire à une seule entrée, voir: https://www.simple-talk.com/sql/t-sql-programming/concatenating-row-values-in -transact-sql /
la source