sql關鍵字group by

SQL中的GROUP BY語句用於藉助某些function將相同的數據分組。注意這裏的藉助二字。也就是說,如果特定的列在不同的行中具有相同的值,則它將這些行排列在一組中。

關於GROUP BY的使用要點:

  • GROUP BY子句需要和SELECT語句一起使用。
  • 在查詢中,GROUP BY子句放在WHERE子句之後。
  • 在查詢中,如果使用GROUP BY子句,則將其放在ORDER BY子句之前。

其語法格式如下:

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

例,假設有customers表如下:

現在假設有如下sql語句:

SELECT NAME, SUM(SALARY) FROM Employee 
GROUP BY NAME;

則其查詢結果爲:

從上面的輸出中可以看到,具有重複名稱的行被分組在同一列下,它們對應的SALARY是重複行的SALARY之和。 SQL的SUM()函數用於計算總和。

也可以group by多個column。

例如:GROUP BY column1,column2。 這個寫法的意思是將具有相同的列1和列2值的所有行放在一組中。例如有如下的表students:

現有sql語句如下:

SELECT SUBJECT, YEAR, Count(*)
FROM Student
GROUP BY SUBJECT, YEAR;

其查詢結果爲:

HAVING

在 SQL 中增加 HAVING 子句原因是,WHERE 關鍵字無法與聚合函數一起使用。

HAVING 子句可以讓我們篩選分組後的各組數據。

其用法如下:

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章