Sql 查找总和最大的行

Sql 查找总和最大的行,sql,postgresql,Sql,Postgresql,我有家教的资料。我在课时表中记录了每个月的辅导时间。我想知道2006年3月谁的辅导时间最多 餐桌导师 tutorID 1 2 会议桌 tutorID Hours Month 1 2 March 1 1 March 2 1 March 预期产出: TutorID 1 我建议: select top 1 sum(Hours), tutorID from

我有家教的资料。我在课时表中记录了每个月的辅导时间。我想知道2006年3月谁的辅导时间最多

餐桌导师

tutorID      
1
2
会议桌

tutorID     Hours      Month
1           2          March
1           1          March
2           1          March
预期产出:

TutorID
1
我建议:

select top 1 sum(Hours), tutorID from SESSION where Month like 'March' group by 
tutorID order by sum(Hours) DESC
使用2秒。 第一个将返回每个导师的所有金额。 第二个将返回第一个cte返回的最大金额。 最后,select语句将仅返回第一个cte中的导师,其小时数总和等于第二个cte返回的最大小时数

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)

行中什么的总和?求三月份导师1和导师2的小时数总和,并返回最高值为什么喜欢“三月”?另外,如果两个导师有相同的金额呢?很公平,有点过分。您也不必通过在变量语句之前写入top 1来限制查询,以消除缺少绘图的可能性。