面试题SQL求迟到最多次的员工最后一次迟到时间

2025-02-22 13:18:12
推荐回答(2个)
回答1:

select id,max(dtime) from tablename where id in
(select id from
(select top 1 with ties id,count(id)
from tablename
where datepart(hour,dtime) > 8
group by id
order by count(id) desc) as t)
group by id
在sql server 2005上运行过了,可以实现你要求的功能,但是感觉有点罗嗦,仅供参考吧

回答2:

SELECT TOP 1 A.NAME,SUM(CASE WHEN datepart(hour,dtime) > 8 THEN 1 ELSE 0 END) 次数 from AAA A
GROUP BY NAME
ORDER BY SUM(CASE WHEN datepart(hour,dtime) > 8 THEN 1 ELSE 0 END) DESC