1、row_number窗口函数 + sum条件判断
select date,
sum(case when rk = 1 then 1 else 0 end) as new
from (
select user_id, date,
row_number()over(partition by user_id order by date) rk
from login
) t
group by date
2、ifnull函数
(评论区看到其他人的解法,个人感觉较为麻烦)
(单纯在这里补充一下ifnull函数的用法)
- IFNULL(expr1,expr2),如果expr1的值为null,则返回expr2的值,如果expr1的值不为null,则返回expr1的值
SELECT IFNULL(NULL,'B'); -- 输出结果:B
SELECT IFNULL('HELLO','B'); -- 输出结果:HELLO



京公网安备 11010502036488号