相关疑难解决方法(0)

为什么SQL强迫我在GROUP BY子句中重复SELECT子句中的所有非聚合字段?

这已经困扰了我很长一段时间.

99%的时候,GROUP BY子句是SELECT子句的精确副本,减去了聚合函数(MAX,SUM等).
这打破了"不要重复自己"的原则.

什么时候GROUP BY子句不能包含SELECT子句的精确副本减去聚合函数?

编辑

我意识到一些实现允许你在GROUP BY中使用不同于SELECT的字段(因此99%,而不是100%),但这肯定是一个非常小的例外?
如果您使用不同的字段,有人可以解释应该返回的内容吗?

谢谢.

sql group-by

33
推荐指数
2
解决办法
1万
查看次数

SQL GROUP BY是一个设计缺陷吗?

为什么SQL要求我指定要分组的属性?为什么不能只使用所有非聚合?

如果一个属性没有被聚合而且不在GROUP BY子句中,那么非确定性选择将是唯一的选择,假设元组是无序的(mysql有点这样)并且这是一个巨大的问题.据我所知,Postgresql要求必须聚合未出现在GROUP BY中的所有属性,这强化了它是多余的.

  • 我是否遗漏了某些内容,或者这是一个语言设计缺陷,促进了松散的实现并使查询难以编写?
  • 如果我遗漏了什么,那么无法推断出组属性的示例查询是什么?   

sql

30
推荐指数
2
解决办法
2612
查看次数

标签 统计

sql ×2

group-by ×1