sql - 获取最高值 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
解决方案
您可以为此目的使用下面的 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
推荐阅读
- java - Spring 安全默认配置总是抛出 401
- python-3.x - 如何在 pycharm 中的不同文件上创建多个类
- c++11 - 创建允许多种类型的数组容器的 C++ 模板函数
- sql-server - 发布数据库迁移验证
- python - 如何在不阻塞事件循环的情况下迭代一个大列表
- c# - 如何使图片框在组框内移动和旋转?
- windows - Perl 在 Windows 上将 LF 写为 CRLF
- reactjs - 如何从深层嵌套子组件调用方法
- windows - 如何将 CCM_UserAffinity 输出格式化为 tyoe Microsoft.PowerShell.Commands.LocalPrincipal
- c# - IoErr (10), message = System.Data.SQLite.SQLiteException (0x800007FF): System.Data.SQLite.SQLite3.Prepare(SQLiteConnection cnn) 的磁盘 I/O 错误