admin

是否可以在不使用Group By子句的情况下在Select语句中使用Aggregate函数?

sql

到目前为止,我已经写了Aggregate函数,后跟Group By子句,以基于SUM,AVG和其他Aggregate函数查找值。我对Group
By子句有些困惑。当我们使用Aggregate函数时,我需要在Group By子句中指定哪些列。否则,有没有使用Group
By子句的方法来使用Aggregate函数。


阅读 159

收藏
2021-05-10

共1个答案

admin

SELECT子句中没有聚合的所有列都必须位于GROUP BY中

好的:

SELECT col1, col2, col3, MAX(col4)
...
GROUP BY col1, col2, col3

也很好:

SELECT col1, col2, col3, MAX(col4)
...
GROUP BY col1, col2, col3, col5, col6

没有其他列=不需要GROUP BY

SELECT MAX(col4)
...

无法运作:

SELECT col1, col2, col3, MAX(col4)
...
GROUP BY col1, col2

无意义:

SELECT col1, col2, col3, MAX(col4)
...
GROUP BY col1, col2, col3, MAX(col4)

由于查询变得模棱两可,因此在没有GROUP BY的情况下与其他列具有聚合(MAX等)没有意义。

2021-05-10