Oracle中的GROUP BY子句用于將查詢結果按照一個或多個列進行分組,以便對每個組執行聚合函數(如COUNT、SUM、AVG等)
SELECT column1, column2, aggregate_function(column3)
FROM table_name
WHERE conditions
GROUP BY column1, column2;
使用GROUP BY子句時,SELECT子句中只能包含以下內容:
使用HAVING子句過濾分組結果:
SELECT column1, COUNT(*)
FROM table_name
GROUP BY column1
HAVING COUNT(*) > 10;
SELECT column1, column2, SUM(column3)
FROM table_name
GROUP BY ROLLUP (column1, column2);
這將首先按照column1和column2進行分組,然后按照column1進行分組,最后對所有記錄進行匯總。
SELECT column1, column2, SUM(column3)
FROM table_name
GROUP BY CUBE (column1, column2);
這將按照column1和column2的所有可能組合進行分組和匯總。
SELECT column1, column2, SUM(column3)
FROM table_name
GROUP BY GROUPING SETS ((column1, column2), (column1), (column2), ());
這將按照column1和column2進行分組,然后分別按照column1和column2進行分組,最后對所有記錄進行匯總。
與其他子句一起使用GROUP BY:
優化GROUP BY查詢性能:
總之,熟練掌握Oracle中的GROUP BY子句及其相關技巧,可以幫助你更高效地處理數據和編寫SQL查詢。