在PostgreSQL(通常簡稱為PgSQL)中,GROUP BY
子句用于將查詢結果按照一個或多個列進行分組
以下是一個使用GROUP BY
的基本示例:
SELECT column1, column2, aggregate_function(column3)
FROM table_name
WHERE conditions
GROUP BY column1, column2;
這里的aggregate_function
是一個聚合函數,如COUNT()
, SUM()
, AVG()
, MIN()
或MAX()
等。GROUP BY
子句將根據column1
和column2
的值對結果進行分組,并對每個組應用聚合函數。
例如,假設我們有一個名為orders
的表,其中包含customer_id
(客戶ID)、order_date
(訂單日期)和amount
(金額)列。我們想要計算每個客戶的總訂單金額。我們可以使用以下查詢:
SELECT customer_id, SUM(amount) as total_amount
FROM orders
GROUP BY customer_id;
這將返回一個結果集,其中每行包含一個客戶ID和該客戶的所有訂單的總金額。
注意,當使用GROUP BY
時,SELECT子句中的非聚合列必須包含在GROUP BY
子句中。此外,GROUP BY
子句中的列必須存在于FROM子句中指定的表中。