mysql统计一个月内不同的天数
在mysql的mysql统计一个月内不同的天数,mysql,sql,distinct,Mysql,Sql,Distinct,在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年5月3日,2013年4月2日 我可以在所有表中执行不同的日期:从表1中选择COUNT(distinct dat
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年5月3日,2013年4月2日 我可以在所有表中执行不同的日期:
从表1中选择COUNT(distinct dateofreport)或distinct months,但我不知道如何按月份分组
SELECT DISTINCT
DATE_FORMAT(`dateofreport`,'%Y-%M') as months
FROM table1
我使用EXTRACT()的唯一原因是它是ANSI标准SQL,IIRC。这两种类型的函数都可能导致临时表
SELECT DATE_FORMAT(dateofreport, '%Y-%M') AS months,
COUNT(DISTINCT dateofreport) AS count
FROM table1
GROUP BY months
我使用EXTRACT()的唯一原因是它是ANSI标准SQL,IIRC。这两种类型的函数都可能导致临时表
SELECT DATE_FORMAT(dateofreport, '%Y-%M') AS months,
COUNT(DISTINCT dateofreport) AS count
FROM table1
GROUP BY months
输出
输出
没有4月31日。@DevlshOne,不符合MySQL的要求!:-)我们可以设置严格模式,使其成为错误。没有4月31日。@DevlshOne,不是根据MySQL!:-)我们可以设置严格模式,使其成为错误。再试一次,我有一个额外的”)“再试一次,我有一个额外的”)”
SELECT
EXTRACT(YEAR_MONTH FROM dateofreport) AS distinctmy,
COUNT(DISTINCT DAYOFYEAR(dateofreport)) AS uniquedays
FROM
table1
GROUP BY distinctmy