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

Har*_*mer 2 sql-server

我搜索了这个错误并修改了我的查询,并在聚合函数中按列使用了我的订单.可能是由于对sql的了解较少,我无法捕捉到此错误的确切含义.

我的表中有以下列:

  • [ID]
  • [POST_ID]
  • [用户身份]
  • [photo_id]
  • [photo_group_id]
  • [album_id]

我的查询:

SELECT TOP 3 MAX(share.id) as share_id, share.user_id 
FROM share  
WHERE share.post_id = 5468   
GROUP BY share.user_id 
ORDER BY share.id desc
Run Code Online (Sandbox Code Playgroud)

我正在使用聚合函数中的列按顺序显示它

"share.id"列在ORDER BY子句中无效,因为它不包含在聚合函数或GROUP BY子句中.

任何帮助将不胜感激.:)

Rob*_*her 11

该列未包含在SELECTed中......我会将ORDER BY更改为聚合列:

ORDER BY MAX(share.id) DESC
Run Code Online (Sandbox Code Playgroud)

或者select中列的索引:

ORDER BY 1 DESC
Run Code Online (Sandbox Code Playgroud)


jro*_*yce 5

share.id 无效,因为您在select语句中使用了别名。

尝试share_id像这样使用代替:

SELECT TOP 3 MAX(share.id) as share_id, share.user_id 
FROM share  
WHERE share.post_id = 5468  
GROUP BY share.user_id
ORDER BY share_id DESC
Run Code Online (Sandbox Code Playgroud)