sql - 如何使用 rank 函数来解决这个问题?
问题描述
我有这个数据:
我想要这个结果:
所以我试过这个:
SELECT
text_area,
ordered_area,
RANK () OVER (ORDER BY text_area) ranked_area
FROM
(
SELECT '1200 AA' text_area ,1 ordered_area
FROM
DUAL
UNION ALL
SELECT '1200 AA' ,2
FROM
DUAL
UNION ALL
SELECT '1200 BB' ,3
FROM
DUAL
UNION ALL
SELECT '1200 CC' ,4
FROM
DUAL
UNION ALL
SELECT '1200 CC' ,5
FROM
DUAL
)
但它并没有解决我的问题。我该如何解决这个问题?
提前致谢
解决方案
DENSE_RANK 不是排名:
SELECT
text_area,
ordered_area,
DENSE_RANK () OVER (ORDER BY text_area) ranked_area
FROM
(
SELECT '1200 AA' text_area ,1 ordered_area
FROM
DUAL
UNION ALL
SELECT '1200 AA' ,2
FROM
DUAL
UNION ALL
SELECT '1200 BB' ,3
FROM
DUAL
UNION ALL
SELECT '1200 CC' ,4
FROM
DUAL
UNION ALL
SELECT '1200 CC' ,5
FROM
DUAL
)
推荐阅读
- python-3.x - 当我调用函数 multi() 时,如何让我的代码循环回到开头?
- gradle - gradle wrapper 在哪里提取它的干扰?
- mysql - 与其他索引连接时,MySql Not Exists 查询非常慢
- c - 在 C 中打印包含进程的矩阵
- pandas - pandas dataframe loc 无法识别正确的名称
- docker - Petalinux 2020.1 配置失败
- sql - 无法将参数值从 TextBox 转换为 Int32
- github - 如何将 Webpack 捆绑的文件推送到 Github 存储库?
- android - Jetpack Compose LazyColumnFor 已弃用,如何将 LazyColumn 与 listState 和对象列表一起使用?
- javascript - 以角度获取模态组件中的路由参数