PostgreSQL(通常簡稱為PgSQL)是一種功能強大的開源對象關系型數據庫管理系統。在PgSQL中,GROUP BY
子句用于將查詢結果按照一個或多個列進行分組。以下是PgSQL GROUP BY
的基本語法結構:
SELECT column_name1, column_name2, ..., aggregate_function(column_name)
FROM table_name
WHERE conditions
GROUP BY column_name1, column_name2, ...
HAVING conditions
ORDER BY column_name;
這里是各部分的解釋:
SELECT
子句:用于指定要從表中檢索的列。你可以使用單個列名,也可以使用多個列名,用逗號分隔。此外,還可以使用聚合函數(如COUNT、SUM、AVG、MIN或MAX)對某些列進行操作。
FROM
子句:指定要查詢的表名。
WHERE
子句(可選):用于過濾查詢結果,只返回滿足特定條件的記錄。
GROUP BY
子句:用于指定按照哪些列對查詢結果進行分組。你可以使用單個列名,也可以使用多個列名,用逗號分隔。
HAVING
子句(可選):與WHERE
子句類似,但它是在分組后對結果進行過濾。HAVING
子句可以包含聚合函數。
ORDER BY
子句(可選):用于對查詢結果進行排序。你可以根據一個或多個列進行排序,并指定排序順序(ASC表示升序,DESC表示降序)。
以下是一個簡單的示例,展示了如何使用GROUP BY
子句對"employees"表中的數據進行分組:
SELECT department, COUNT(*) as num_of_employees
FROM employees
GROUP BY department;
這個查詢將按照部門(department)對員工進行分組,并計算每個部門的員工數量。