Ich habe ein Problem mit group by
. Ich möchte mehrere Spalten auswählen, aber nur nach einer Spalte gruppieren. Die folgende Abfrage ist das, was ich versucht habe, aber es gab mir einen Fehler.
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
quelle
quelle
GROUP BY A,B,C
kann völlig anders sein als das, was Sie im Vergleich zu bekommen wollenGROUP BY A
. Außerdem können wir normalerweise keine Aggregatfunktion verwenden, um den zugehörigen Spaltenwert abzurufen. Überprüfe diese Antwort als LösungHinweis: Diese Antwort ist als Ergänzung zur Antwort von @Lukas Eder gedacht
Wenn für die Felder
SELECT
ed mehrere Werte vorhanden sind, aber ein Feld, das Sie möchten,GROUP BY
können Sie stattdessen die oberste übereinstimmende Zeile abrufen, anstattMAX
auf die Rückgabe einer Aggregation ( ) zu warten .Wenn Sie möchten, dass ALLE Werte in diesen anderen Spalten zurückgegeben werden, diese jedoch zu einem einzigen Eintrag zusammengefasst werden, lesen Sie: https://www.simple-talk.com/sql/t-sql-programming/concatenating-row-values-in -transact-sql /
quelle