gpt4 book ai didi

sql - 月度统计

转载 作者:行者123 更新时间:2023-11-29 00:58:05 24 4
gpt4 key购买 nike

我在 Postgres 和 MySQL 中有一个表,其中包含“created_at”列。我想查询以下内容:

Month Count
1 0
2 0
3 0
4 12
5 15
...

谁能吐出一些sql?请注意,没有返回行的月份必须列为 0。我有这个:

SELECT month(created_at) as month, count(*) as c 
FROM `sale_registrations`
WHERE (created_at>='2011-01-01' and created_at<='2011-12-31')
GROUP BY month(created_at)
ORDER BY month(created_at)

最佳答案

使用EXTRACT(month FROM created_at)得到月份。这也适用于 MySQL。

编辑:在带有月份数字的表上使用 RIGHT JOIN:

CREATE TABLE months(nr tinyint);
INSERT INTO months(nr) VALUES (1),(3),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12);

SELECT
nr as month,
COUNT(*) as c
FROM
sale_registrations
RIGHT JOIN months ON EXTRACT(month FROM created_at) = nr
WHERE
(created_at BETWEEN '2011-01-01' AND '2011-12-31')
GROUP BY
EXTRACT(month FROM created_at)
ORDER BY
EXTRACT(month FROM created_at) ASC;

在 PostgreSQL 中,您可以使用 generate_series(),但这在 MySQL 中不起作用。

关于sql - 月度统计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5041838/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com