gpt4 book ai didi

mysql - 如何根据数据计数按月和年进行分组

转载 作者:行者123 更新时间:2023-11-29 08:41:13 24 4
gpt4 key购买 nike

我有一个包含如下数据的表格:

id | question | pub_date
1 | qeustion1| 2012-12-03
2 | qeustion2| 2012-12-06
3 | qeustion3| 2012-11-03
4 | qeustion4| 2011-12-03

我想要一个像这样的输出:应该按照年、月结果计数,按降序排列记录,并显示每行数据。

就我而言:

  • 年份:2012年有3条记录
  • 月份:2012年12月有2条记录
  • 年份:2011年有1条记录
  • 2011年12月有1条记录。

我已经尝试过这个:

SELECT
EXTRACT(MONTH FROM pub_date) as month,
EXTRACT(YEAR FROM pub_date) as year,
Count(id)
FROM
mytable
GROUP BY
month,
year
ORDER BY
year DESC,
month DESC

我需要显示这样的数据,请参阅 Site博客存档部分

最佳答案

我假设你想要的结果是这样的:

2012           3
2012 12 2
2012 11 1
2011 1
2011 11 1

您可以通过在两个聚合查询上使用 union 来获取此信息:

select s.*
from ((select year(pub_date) as yr, NULL as month, count(*) as cnt
from t
group by year(pub_date)
) union all
(select year(pub_date) as yr, month(pub_date) as mon, count(*) as cnt
from t
group by year(pub_date), month(pub_date)
)
) s
order by yr desc,
(case when mon is null then -1 else mon end)

关于mysql - 如何根据数据计数按月和年进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13744136/

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