У меня проблема с group by
, я хочу выбрать несколько столбцов, но сгруппировать только по одному столбцу. Запрос ниже - то, что я пытался, но он дал мне ошибку.
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
Найим Мансури
источник
источник
GROUP BY A,B,C
может быть совершенно другим, чем то, что вы хотите получить по сравнению сGROUP BY A
. а также, обычно мы не можем использовать какую-либо статистическую функцию для получения значения соответствующего столбца. проверить этот ответ как решениеПримечание. Этот ответ является дополнением к ответу @Lukas Eder.
Если существует несколько значений для полей
SELECT
ed, но поле, которое вы хотитеGROUP BY
, вы можете вместо этого взять верхнюю совпадающую строку, вместо того, чтобы ждатьMAX
возврата aggregation ( ).если вы хотите, чтобы ВСЕ значения возвращались в эти другие столбцы, но хотите свернуть их в одну запись, см .: https://www.simple-talk.com/sql/t-sql-programming/concatenating-row-values-in -transact-SQL /
источник