Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql统计一个月内不同的天数_Mysql_Sql_Distinct - Fatal编程技术网

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

在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 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