gpt4 book ai didi

mysql - SQL查询带来列中不存在的月份

转载 作者:太空宇宙 更新时间:2023-11-03 11:22:12 24 4
gpt4 key购买 nike

我想计算他们在数据库中写入的月份的行数。我的数据库有一个名为 created_date 的列。你可以在下面看到我做了什么:

select month(created_date) as "Month", count(created_date) as "Count" from transactions group by month(created_date)

这个查询返回的是这样的:

{'Month':1,'Count':10}

发生这种情况是因为我的数据库中只有一个月,而我需要所有月份的结果,包括数据库中不存在的月份,如下所示:

{'Month':1,'Count':10}
{'Month':2,'Count':0}
{'Month':3,'Count':0}
{'Month':4,'Count':0}
{'Month':5,'Count':0}
{'Month':6,'Count':0}
{'Month':7,'Count':0}
{'Month':8,'Count':0}
{'Month':9,'Count':0}
{'Month':10,'Count':0}
{'Month':11,'Count':0}
{'Month':12,'Count':0}

我应该怎么做?

最佳答案

您可以JOIN 到一个月份列表,这样即使您的表中不存在月份,您也可以获得一行:

SELECT m.month,
COUNT(t.created_date)
FROM (SELECT 1 AS month UNION ALL SELECT 2 UNION ALL SELECT 3
UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6
UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9
UNION ALL SELECT 10 UNION ALL SELECT 11 UNION ALL SELECT 12) m
LEFT JOIN transactions t ON MONTH(t.created_date) = m.month
GROUP BY m.month

关于mysql - SQL查询带来列中不存在的月份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58765989/

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