我有导师的数据。我在SESSION表中记录了每月花在辅导上的时间。我需要知道谁在2006年3月的补习时间最多。
桌老师
tutorID
1
2
表会话
tutorID Hours Month
1 2 March
1 1 March
2 1 March
预期输出:
TutorID
1
答案 0 :(得分:1)
我建议:
select top 1 sum(Hours), tutorID from SESSION where Month like 'March' group by
tutorID order by sum(Hours) DESC
答案 1 :(得分:0)
使用2 CTE
s。
1st将返回每个导师的所有总和。
第二个将返回第一个cte返回的总和。
最终,您的select语句将只返回第一学时的导师,其时长等于第二学时返回的最大时数。
with
sumcte as (
select tutorID, sum(hours) sumhours
from session
where month = 'March' -- here there should be another condition for the year?
group by tutorID
),
maxcte as (
select max(sumhours) maxhours from sumcte
)
select tutorid from sumcte
where sumhours = (select maxhours from maxcte)