1. 程式人生 > 其它 >詳解GROUP BY 如何與 SELECT 語句進行互動?

詳解GROUP BY 如何與 SELECT 語句進行互動?

SELECT 列表:

向量聚合。如果 SELECT 列表中包含聚合函式,則 GROUP BY 將計算每組的彙總值。這些函式稱為向量聚合。

Distinct 聚合。ROLLUP、CUBE 和 GROUPING SETS 支援聚合 AVG (DISTINCT column_name)、COUNT (DISTINCT column_name) 和 SUM (DISTINCT column_name) 。

WHERE 子句:

執行任何分組操作之前,SQL 會刪除不滿足 WHERE 子句中條件的行。

SELECT column_name, aggregate_function(column_name)
FROM table_name WHERE column_name operator value GROUP BY column_name;

HAVING 子句:

SQL 使用 having 子句來篩選結果集內的組。

SELECT column_name, SUM(column_name1) AS column_name_1
FROM table_name
GROUP BY column_name
HAVING column_name > 10   

ORDER BY 子句:

使用 ORDER BY 子句可以對結果集進行排序。GROUP BY 子句不能對結果集進行排序。

SELECT
column_name, SUM(column_name1) AS column_name_1 FROM table_name AS table_name_1 GROUP BY column_name ORDER BY column_name;

NULL 值:

如果組合列包含 NULL 值,則所有的 NULL 值都將被視為相等,並會置入一個組中。


GROUP BY和SELECT的一些總結:

如果在有group by的SQL操作中,select後面顯示的結果集欄位只有兩種: 要麼就只有group by後出現的欄位,要麼就是group by後出現的欄位 + 聚合函式的組合(常用的五種聚合函式: min()求列中最小值 , max()求列中最大值 , avg()求平均值 , sum()求列中欄位對應數值的總和 , count()求列的總條數)。