PostgreSQL GROUP BY 学习笔记

本文将介绍 PostgreSQL 中的 GROUP BY 语句,该语句可以根据指定的列对查询结果进行分组。

语法

Copy Code
SELECT column1, column2, ... FROM table_name GROUP BY column1, column2, ...

示例

假设我们有以下表格:

books 表格:

id name author publish_date
1 The Great Gatsby F. Scott Fitzgerald 1925-04-10
2 To Kill a Mockingbird Harper Lee 1960-07-11
3 1984 George Orwell 1949-06-08
4 Animal Farm George Orwell 1945-08-17
5 Romeo and Juliet William Shakespeare 1597-01-04

使用 GROUP BY 对作者进行分组并计算每个作者的书籍数量:

Copy Code
SELECT author, COUNT(id) as book_count FROM books GROUP BY author;

将会得到以下结果:

author book_count
F. Scott Fitzgerald 1
Harper Lee 1
George Orwell 2
William Shakespeare 1

注意:在 GROUP BY 语句中,所有未在 GROUP BY 中指定的列都必须在聚合函数 (例如上面的 COUNT) 中进行聚合计算,否则查询将失败。