mysql计算一个月中不同的天数

标签 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-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/

相关文章:

java - Hibernate 或 JPA 中的 `SELECT COUNT(*) FROM (SELECT DISTINCT ...)`

c# - 如何在 Distinct 中使用 lambda 表达式

c# - 获取不同的名称

mysql - 如何在 MSSQL 中对单列使用 Group By

mysql - 错误 1215 (HY000) 在第 13 行 : Cannot add foreign key constraint

java - 使用 JDBC 语句执行查询时出现 NullPointerException

MySQL 工作台 : 'Service Started then Stopped'

mysql - 在 MySql 中存储 html 语法

Mysql docker 容器 - 无法让任何东西工作

mysql - 从MySQL中的一个结果集中的多个表中获取数据