我需要从查询中获取的值列表中获取最大值。
基本上,问题是:
我有两张桌子:
律师
案例
我需要让案件数量最多的律师......(这没有问题)但是,如果存在多个案件数量最多的律师,我应该列出它们。 任何有关这方面的帮助将不胜感激。
答案 0 :(得分:0)
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 provided):
您只需要一个子查询级别,因为您可以通过聚合函数运行窗口函数:
除此之外:最好在Postgres中使用合法的,小写的,不带引号的标识符。切勿使用类似Case
的{{3}},这会导致非常混乱的错误。