在 mysql table1
中,我有 dateofreport
列,每天有几条记录,例如
dateofreport
2013-05-31
2013-05-31
2013-05-30
2013-05-30
2013-05-30
2013-05-29
2013-04-31
2013-04-31
2013-04-31
2013-04-02
我想知道一个月有多少天,
所以结果应该是:2013-May : 3, 2013-April : 2
我可以在所有表中做不同的日子:SELECT COUNT( DISTINCT dateofreport ) FROM table1
或不同的月份,但我不知道如何按月分组。
SELECT DISTINCT
DATE_FORMAT(`dateofreport`,'%Y-%M') as months
FROM table1
最佳答案
SELECT EXTRACT(YEAR_MONTH FROM dateofreport) AS ym,
COUNT(DISTINCT dateofreport) AS count
FROM table1
GROUP BY ym
我使用 EXTRACT() 的唯一原因是它是 ANSI 标准 SQL,IIRC。两种类型的函数都可能导致临时表。
关于mysql计算一个月中不同的天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19148982/