我需要从查询获得的值列表中获得最大值。
基本上,问题是:
我有两张桌子:
- id (PK)
- surname
- name
- id (PK)
- id\_Client
- date
- id\_Lawyer (FK)
我需要找一个案件数量最多的律师.(这没有问题),但是,如果有不止一个有最多案件数量的律师,我应该列出他们。如能对此提供任何帮助,将不胜感激。
发布于 2015-10-19 03:35:58
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,这会导致非常令人困惑的错误。
https://stackoverflow.com/questions/33204574
复制相似问题