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

标签 sql-server

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

我的表中有以下列:

  • [id]
  • [post_id]
  • [user_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

我在聚合函数中按列使用 order by 仍然显示

Column "share.id" is invalid in the ORDER BY clause because it is not contained in either an aggregate function or the GROUP BY clause.



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

最佳答案

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

ORDER BY MAX(share.id) DESC

或选择中列的索引:
ORDER BY 1 DESC

关于sql-server - 在 ORDER BY 子句中无效,因为它不包含在聚合函数或 GROUP BY 子句中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33580104/

相关文章:

node.js - 我们如何将winston日志写入SQL Server?

sql-server - 'ALFKI'到底是什么意思?

sql-server - 在 SQL Server 数据仓库上创建外部表时避免名称冲突

.net - Windows Azure 平台,最新版本?

sql - 将表达式转换为数据类型 int 以进行基本统计时发生算术溢出错误

SQL XML 命名空间问题

sql - 在两个词之间剪切文本

sql-server - 如何在 SELECT 语句中有条件地执行 FROM 子句?

sql - 如何让 SQL INNER JOIN 接受空结果

c# - 如何处理从存储过程到 C# 代码的空值参数返回?