oracle - 排序后分配行号
问题描述
排序后,如何为我的代码分配行号?
我使用了 ROWNUM,但结果未按4,3,2,1,8,7,5,6
如下顺序排列。
ROWNUM C0 M SS
------ --- ----- -----
4 a ace 11
3 a abe 7
2 a abd 3
1 a a__ 21
8 b ace 11
7 b abe 7
6 b abd 3
5 b a__ 21
我的代码:
CREATE TABLE T4 (
C0 VARCHAR2(10),
C1 VARCHAR2(10),
C2 NUMBER
);
INSERT INTO T4 VALUES ('a','abd',1);
INSERT INTO T4 VALUES ('a','abd',2);
INSERT INTO T4 VALUES ('a','abe',3);
INSERT INTO T4 VALUES ('a','abe',4);
INSERT INTO T4 VALUES ('a','ace',5);
INSERT INTO T4 VALUES ('a','ace',6);
INSERT INTO T4 VALUES ('b','abd',1);
INSERT INTO T4 VALUES ('b','abd',2);
INSERT INTO T4 VALUES ('b','abe',3);
INSERT INTO T4 VALUES ('b','abe',4);
INSERT INTO T4 VALUES ('b','ace',5);
INSERT INTO T4 VALUES ('b','ace',6);
SELECT ROWNUM,rr.C0,rr.M, rr.ss -- How to modify to get 1,2,3,4,5,6,7,..
FROM
(
SELECT C0,C1 M, SUM(C2) ss FROM T4 GROUP BY C0, C1
UNION
SELECT C0,SUBSTR(C1,1,1)||'__' , SUM(C2) ss FROM T4 GROUP BY C0,SUBSTR(C1,1,1)) rr
ORDER BY rr.C0,rr.M DESC;
解决方案
将 rownum 移到查询之外:
select rownum, r.* from (
... your query with order by
) r
推荐阅读
- flutter - 包裹在一行内被切割
- c# - 与三角形背面碰撞时如何忽略相机碰撞?
- python-3.x - 在 qml 中禁用最小化功能
- mysql - 如何在mysql中将日文日期格式转换并更新为真实的日期时间格式
- c# - 带有身份的 Blazor WebAssembly 的 SignalR Hub 授权
- d3.js - dc.ChoroplethChart 的问题
- rust - 在 rust 中重新编码 C++ 任务队列。期货是正确的抽象吗?
- linux - 使用热键后如何在 vim 中转到行尾?
- android - 启用 FLAG_LAYOUT_NO_LIMITS 时,选项子菜单会离开屏幕
- javascript - 如何在 JavaScript 中应用 display: flex 和 flex-direction: row?