mysql - 使用 GROUP BY 进行不同计数

标签 mysql count distinct

我有两个有关用户数量的 mySQL 查询:

首先是这样的:

SELECT
date_format(r.dataZalozenia,'%Y-%m') as rok_miesiac,
count(distinct r.idUsera) as liczba_buyers

FROM
rezerwacje r

WHERE
r.dataZalozenia >= '2017-01-01'
and r.status = 'zabookowana'

GROUP BY
1

结果是:

"rok_miesiac"   "liczba_buyers"
"2017-01"   "12862"
"2017-02"   "10208"
"2017-03"   "10189"
"2017-04"   "10993"
"2017-05"   "10705"

第二个是:

SELECT DISTINCT
r.idUsera,
count(r.idUsera) as l_reze

FROM
rezerwacje r

WHERE
r.dataZalozenia between '2017-04-01' and '2017-04-30'
and r.status = 'zabookowana'

GROUP BY
r.idUsera

ORDER BY
l_reze DESC

结果是:

idUsera l_reze
516287  8
2495710 6
2195860 6
645233  5
98308   5
543007  5
1464142 5
3461665 5
3443141 5
3818844 4
2305130 4

等等。即基本上是 user_id 和预订数量。在这种情况下,我得到 10768 行,即 10768 个不同的 user_id(仅适用于 4 月份)。

为什么 4 月 1 日查询返回 10993 个不同的 user_id(我认为),而第二个查询返回 10768?

最佳答案

如果 dataZalozenia 是日期时间或时间戳,则您的 BETWEEN 将不包含结束日期以来的大多数记录; “2017-04-30”被视为“2017-04-30 00:00:00”。

关于mysql - 使用 GROUP BY 进行不同计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44292160/

相关文章:

python - 计算列表中字符串或 float 的频率

python - 如何提高for循环的执行时间?

mysql - 在 CentOS 6.2 中将 MySQL 版本从 5.1 更新到 5.5

php - SQL 语法错误 - 插入操作 (PHP)

Mysql 查询不适用于空列

python - 将已部署的 flask 应用程序连接到托管在另一台服务器/提供商上的数据库

mysql - sql过滤2个以上

mysql - 隐藏查询中的重复数据或不需要的行

mysql - GROUP BY 显示所有不同的列

sql - 从仅前两列不同的表中选择数据