Tengo un problema con group by
, quiero seleccionar varias columnas pero agruparlas solo por una columna. La consulta a continuación es lo que intenté, pero me dio un error.
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
fuente
fuente
GROUP BY A,B,C
puede ser totalmente diferente de lo que quieres obtener en comparaciónGROUP BY A
. y también, generalmente no podemos usar alguna función agregada para obtener un valor de columna relacionado. marque esta respuesta como una soluciónNota: Esta respuesta pretende ser un complemento de la respuesta de @Lukas Eder
Si hay varios valores presentes para los campos
SELECT
ed pero un campo que deseaGROUP BY
, en su lugar, puede tomar la línea de coincidencia superior, en lugar de esperarMAX
a que regrese una agregación ( ).si desea que TODOS los valores vuelvan en esas otras columnas, pero desea contraerlo en una sola entrada, consulte: https://www.simple-talk.com/sql/t-sql-programming/concatenating-row-values-in -transact-sql /
fuente