如何显示有max(总和(时间))的导师姓名?
首先我尝试了这个:
select max(sum(time))
from tutorial
group by tutor;
答案是5 它只是显示了最大时间但未显示谁有时间(导师姓名) 我试图添加选择导师,最大(总和(时间))....但错误
第二,我试过这个:(最大和总和之间的分离)
select max(x) "THE MAXIMUM"
from (
select sum(time) x,tutor from tutorial group by tutor
);
回答= 5。
我试着写select tutor,max(x) "THE MAXIMUM" ......
但仍然是错误
他们所有人都有同样的错误。 错误说:
ORA-00937: not a single-group group function
00937. 00000 - "not a single-group group function"
请帮帮我
答案 0 :(得分:0)
对于Oracle,一种简单的方法是只做一个正常的GROUP BY
,按时间总和(降序)排序并选择第一行;
SELECT * FROM (
SELECT SUM("time") "time", "tutor"
FROM tutorial
GROUP BY "tutor"
ORDER BY "time" DESC
)
WHERE ROWNUM=1
答案 1 :(得分:0)
我今天无法访问计算机,但试试这个。
with a as ( select tutor, sum(time) sum_time from tutorial group by tutor b as ( select tutor, sum_time, rank() over( order by sum_time desc) RN from a ) select tutor, sum_time from b where RN = 1
如果顶部有多个导师,则可能会返回多行。将排名更改为row_number以随意选择一个。