sql - 如何获得最大的名字?数据库

标签 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

结果我有:

|max numeric|
 -----------
   200

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

最佳答案

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

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;

否则,您可以对 CTE 术语使用 HAVING 子句和子查询。

(LIMIT 是一个 PostgreSQL 扩展)

关于sql - 如何获得最大的名字?数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23905848/

相关文章:

sql - 在 Rails 4 中编写 SQL

mysql - 如何从mysql中的多个相同日期获取最新日期时间

database - 错误 : right sibling's left-link doesn't match: block 19 links to 346956 instead of expected 346955 in index "pg_depend_reference_index"

MySQL单表复杂查询问题

Mysql,如果表A中存在外键,则向表B中插入新记录

android - 如何将 query() 与 WHERE 子句一起使用?

mysql - SQL - 从一个表中获取另一表中不是 "LIKE"的记录

postgresql - 我想让我的 pl/pgsql 脚本输出到屏幕上

sql - 我可以使用来自两个连接表的数据编写插入查询吗?

mysql - Cakephp 使用模型插入到选择中