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