我有一个关于用户数量两个MySQL查询:COUNT DISTINCT与GROUP BY
首先会是这样:
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
And r结果在:
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?
也许不同的用户数量增长不那么多?如果我们假设在四月以外只有225个用户,结果是非常合理的。这意味着很多重访/重用。你可以同时使用两个查询,从第一个不存在于第二个的地方开始,如果你得到了225我认为你有你的答案。 – xQbert