📜  postgresql 按月和年分组 - SQL (1)

📅  最后修改于: 2023-12-03 15:18:39.235000             🧑  作者: Mango

PostgreSQL 按月和年分组 - SQL

在 PostgreSQL 中,我们可以使用 GROUP BY 语句对数据进行分组。本文将介绍如何按照月和年对数据进行分组。

按月分组

我们可以在 SELECT 语句中使用 DATE_TRUNC 函数来按月份截断日期(例如将日期转换为月初)。然后我们可以使用 GROUP BY 语句按截断后的日期分组。

SELECT DATE_TRUNC('month', created_at) AS month,
       COUNT(*) AS count
FROM my_table
GROUP BY month
ORDER BY month;

上面代码的含义是从 my_table 表中选出 created_at 字段,使用 DATE_TRUNC 函数将其转换为月初日期,然后按照此日期进行分组,最后统计每个组中的记录数量。

按年分组

与按月分组类似,我们可以使用 DATE_TRUNC 函数将日期转换为年初日期,然后使用 GROUP BY 语句按照此日期进行分组。

SELECT DATE_TRUNC('year', created_at) AS year,
       COUNT(*) AS count
FROM my_table
GROUP BY year
ORDER BY year;

上面代码的含义是从 my_table 表中选出 created_at 字段,使用 DATE_TRUNC 函数将其转换为年初日期,然后按照此日期进行分组,最后统计每个组中的记录数量。

总结

本文介绍了如何在 PostgreSQL 中按照月和年对数据进行分组。我们可以使用 DATE_TRUNC 函数来截断日期,然后使用 GROUP BY 语句按照截断后的日期进行分组。