怎么得到max的名字?SQL

0 sql postgresql select max

我有疑问:

select max(sumValues) 
FROM (select dep.name AS sumName, sum(em.salary) AS sumValues 
from EMPLOYEE em 
INNER JOIN DEPARTMENT dep ON em.department_id=dep.id 
group by dep.id) a
Run Code Online (Sandbox Code Playgroud)

结果我有:

|max numeric|
 -----------
   200
Run Code Online (Sandbox Code Playgroud)

但是我想得到max(max(sumValues))的结果名称(dep.name),我该怎么做呢?

Cra*_*ger 7

最简单的方法是排序并获取第一个元组:

select sumName, sumValues
FROM (
    select dep.name AS sumName, sum(em.salary) AS sumValues 
    from EMPLOYEE em 
    INNER JOIN DEPARTMENT dep ON em.department_id=dep.id 
    group by dep.id
) a
ORDER BY sumValues DESC
LIMIT 1;
Run Code Online (Sandbox Code Playgroud)

否则,您可以HAVING在CTE术语上使用子句和子查询.

(LIMIT是PostgreSQL扩展)