列在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中

Bub*_*Bub 5 sql t-sql sql-server window-functions

我有下面的SQL查询,但我执行它时遇到问题.

SELECT * from (Select row_number() OVER(Order By FloorUserId) as 'row_number', FloorUserId,
max(CASE WHEN AreaId='[G]' or AreaId=N'L01'  THEN 'X' ELSE ' ' END) as 'L01',
max(CASE WHEN AreaId='[G]' or AreaId=N'L02'  THEN 'X' ELSE ' ' END) as 'L02'
from floor, tbuser where FloorUserId= tbuser.userID  
    )  as derivedTable where row_number BETWEEN 1 AND 20
Run Code Online (Sandbox Code Playgroud)

但我不断收到以下错误:

列'FloorId'在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中.

dev*_*rce 0

当您使用聚合(如 max)时,只能使用属于 group by 子句一部分的字段。

因此,如果您希望其他字段将它们添加到 group by 子句中,请去掉“*”。