Mam problem group by
, chcę wybrać wiele kolumn, ale pogrupować według tylko jednej kolumny. Poniższe zapytanie jest tym, co próbowałem, ale dał mi błąd.
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
źródło
źródło
GROUP BY A,B,C
może być zupełnie inny niż to, co chcesz uzyskać w porównaniuGROUP BY A
. a także zwykle nie możemy użyć funkcji agregującej, aby uzyskać powiązaną wartość kolumny. sprawdź tę odpowiedź jako rozwiązanieUwaga: Ta odpowiedź stanowi uzupełnienie odpowiedzi @Lukas Eder
Jeśli istnieje wiele wartości dla pól
SELECT
ed, ale pole, które chceszGROUP BY
, możesz zamiast tego pobrać górną pasującą linię, zamiast czekać naMAX
zwrócenie agregacji ( ).jeśli chcesz, aby WSZYSTKIE wartości zwracały się w tych innych kolumnach, ale chcesz zwinąć je w jednym wpisie, patrz: https://www.simple-talk.com/sql/t-sql-programming/concatenating-row-values-in -transact-sql /
źródło