数据库每日一题:表employee包含2个字段:id(员工ID)、salary(员工薪水),通过SQL查询出employee表中第二高的薪水,具体如图所示:
解决思路:
- 格式化上班时间成日期作为新的字段
- 根据姓名和日期进行分组,同时计算每一分组的最大时间和最小时间作为下班时间和上班时间
参考答案(有更优SQL欢迎留言共同学习):
select t.name as '姓名', t.time1 as '日期',
max(t.time) as '下班时间', min(t.time) as '上班时间'
from (
select t.name, date_format(t.time, '%Y-%m-%d') as time1, t.time
from
tab as t
) as t
group by t.name, t.time1