📅  最后修改于: 2023-12-03 15:39:47.986000             🧑  作者: Mango
在 Postgres 数据库中,按两列分组是一种常见的数据操作需求。本文介绍了如何在 SQL 中按两列对数据进行分组。
按照两列进行分组的 SQL 查询语法,如下所示:
SELECT col1, col2, <agg_func>(col3)
FROM table_name
GROUP BY col1, col2;
其中:
col1
、col2
:需要按这两列进行分组;<agg_func>(col3)
:对 col3 列进行聚合计算,<agg_func>
表示聚合函数,如 SUM
、AVG
等;table_name
:需要查询的表名。首先,我们需要创建一张测试数据表 sales
,包含 region
、product
、year
和 sales
四个字段。
CREATE TABLE sales (
region TEXT,
product TEXT,
year INT,
sales NUMERIC
);
由于本文只是为了演示 SQL 语法,所以我们使用一些虚构的数据进行测试。
INSERT INTO sales VALUES ('North', 'Product A', 2021, 10000);
INSERT INTO sales VALUES ('North', 'Product A', 2020, 8000);
INSERT INTO sales VALUES ('North', 'Product B', 2021, 15000);
INSERT INTO sales VALUES ('North', 'Product B', 2020, 12000);
INSERT INTO sales VALUES ('South', 'Product A', 2021, 9000);
INSERT INTO sales VALUES ('South', 'Product A', 2020, 7500);
INSERT INTO sales VALUES ('South', 'Product B', 2021, 12000);
INSERT INTO sales VALUES ('South', 'Product B', 2020, 10000);
接下来,我们按照 region
和 product
两列进行分组,并计算 sales
列的总和。
SELECT region, product, SUM(sales)
FROM sales
GROUP BY region, product;
执行此查询,将得到以下结果:
| region | product | sum | | ------ | ---------- | --- | | North | Product A | 18000 | | North | Product B | 27000 | | South | Product A | 16500 | | South | Product B | 22000 |
这是按照 region
和 product
两列进行分组后,计算 sales
列总和的结果。
按两列分组是 SQL 中的一种常见操作需求。本文介绍了如何使用 Postgres 数据库中的 SQL 语法对数据进行分组,并给出了一个示例。如果你也需要按两列分组的数据,请参考本文的示例进行操作。