首页 > 解决方案 > 获取最高值 ID

问题描述

我需要打印 Region ID 和他持有的国家的数量,但只针对最高的国家。

我的桌子是这样的:

COUNTRY_ID        COUNTRY_NAME     REGION_ID
AR                Argentina           2
AU                Belgium             3
BE                Brazil              1
BR                Canada              2
CA                Switzerland         2
CN                China               1
DE                Germany             3

结果必须是这样的:

REGION_ID      Quantity
   2              3

标签: sqloraclesql-limit

解决方案


您可以为此目的使用下面的 sql。我使用 row_number 分析函数对按 REGION_ID 列分组后的行进行排名。然后,我通过 rnb = 1 过滤以获得最大数量的行。

select REGION_ID, QUANTITY
from (
    select t.REGION_ID, count(*)quantity, row_number()over(order by count(*) desc) rnb
    from YourTable t
    group by t.REGION_ID
)
where rnb = 1

演示


推荐阅读