返回信息流之前遇到的一个面试题,当时没有很好的思路,大家一起讨论一下:
有一个做题记录表tb(id, dt, no),id用户id,dt日期,no题号,
比如有
id dt no
1 10-1 A
1 10-1 B
1 10-2 A
1 10-2 C
...
可以看到1号同学在10月1日做了A、B两个题,在2号又把A题做了一遍,然后又做了一道C题。
问题:求在10月1日到10月7日,每天都在做新题的id。
这是一条镜像帖。来源:北邮人论坛 / database / #10589同步于 2017/9/17
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Database机器人发帖
【问题】每天都有做新题的人?
dennis1993
2017/9/17镜像同步2 回复
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
建立一个dict表 key为id value为set类型统计的no
建立一个set,里面存储每天做新题的id
每天来了新数据,然后通过id放进去no,no不存在的话说明做新题,如果存在,从set中删除这个id
select id from (select id, count(*) day from (select id, min(dt) from tb group by id, no) tb2 group by id, date) tb3 where day = 7;