面试题:某部门员工的打开记录user_signs 如下, 用一条SQL统计出员工的出勤次数,迟到次数和迟到总时长:
ID | date | name | delay_time |
---|---|---|---|
1 | 2020-01-01 | 张三 | 0 |
2 | 2020-01-01 | 李四 | 10 |
3 | 2020-01-01 | 王五 | 2 |
4 | 2020-01-02 | 张三 | 5 |
5 | 2020-01-02 | 李四 | 0 |
6 | 2020-01-02 | 王五 | 4 |
答案:
select name,sum(delay_time), count(1), count(if(delay_time>0, true, null)) from user_signs group by name