首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PostgreSQL:从咨询中获取最大值

PostgreSQL:从咨询中获取最大值
EN

Stack Overflow用户
提问于 2015-10-18 23:50:51
回答 1查看 74关注 0票数 0

我需要从查询获得的值列表中获得最大值。

基本上,问题是:

我有两张桌子:

  • 律师
代码语言:javascript
复制
- id (PK)
- surname
- name

  • 案例
代码语言:javascript
复制
- id (PK)
- id\_Client
- date
- id\_Lawyer (FK)

我需要找一个案件数量最多的律师.(这没有问题),但是,如果有不止一个有最多案件数量的律师,我应该列出他们。如能对此提供任何帮助,将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2015-10-19 03:35:58

代码语言:javascript
复制
SELECT l.*, cases
FROM  (
   SELECT "id_Lawyer", count(*) AS cases, rank() OVER (ORDER BY count(*) DESC) AS rnk
   FROM   "Case"
   GROUP  BY 1
   ) c
JOIN   "Lawyer" l ON l.id = c."id_Lawyer"
WHERE  c.rnk = 1;

该技术的基础(如@FuzzyTree提供):

您只需要一个子查询级别,因为您可以在聚合函数上运行窗口函数:

旁白:最好在Postgres中使用合法的、小写的、未引用的标识符。不要使用像保留字这样的Case,这会导致非常令人困惑的错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33204574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档