where是先过滤再聚合
having是先聚合再挑选
groupby后面聚合的条件是两者都不一样才聚合
1.找出20190322这天的新用户
这个代表先把20190322的所有数据都给过滤出来,随后再把uid给聚合起来
此处groupby后面的条件是uid,如果加上date的话结果还是一样的,因为where已经限定了数据
SELECT
uid
FROM
app_user_daily_start
WHERE
date = '20190322'
GROUP BY
uid
2.找出20190322这天所有登陆过的用户
这个代表先根据uid和date聚合一下数据,随后再从数据中找到时间为20190322的
此处groupby后面的条件是uid,如果加上date的话结果就不一样了,因为只有两者不相同才聚合
SELECT
uid,date
FROM
app_user_daily_start
GROUP BY
uid
HAVING
date = '20190322'