Nay*_*ori 20 sql-server group-by
我有一个问题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;
Run Code Online (Sandbox Code Playgroud)
Luk*_*der 22
在 SQL Server 中,您只能选择属于GROUP BY
子句的列,或任何其他列上的聚合函数。我已经在博客中详细介绍了这一点。所以你有两个选择:
将附加列添加到GROUP BY
子句中:
GROUP BY Rls.RoleName, Pro.[FirstName], Pro.[LastName]
Run Code Online (Sandbox Code Playgroud)在相关列上添加一些聚合函数:
SELECT Rls.RoleName, MAX(Pro.[FirstName]), MAX(Pro.[LastName])
Run Code Online (Sandbox Code Playgroud)第二种解决方案主要是一种解决方法,并表明您应该使用查询修复更一般的问题。