SELECT A.date,
SUM(CASE WHEN P=1 THEN 1 ELSE 0 END) AS new
FROM (SELECT date,ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY date) P
FROM login) A
GROUP BY A.date
ORDER BY A.date

ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY date)

对用户进行分组并对日期进行升序

比如一组 的日期为2020-11.15 2020.11.16 那排名为1的就是2020.11.15 所以选1就是首次登陆的日期

CASE WHEN P=1 THEN 1 ELSE 0 END 如果字段p=1 就是1 否则是0 排序等于1 查询是否首次登陆

对日期进行筛选

对日期进行排序