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