R1=196.
R2=84.
R3=91.
R4=147.對於以上的4個數字進行一個排序,但是縂的順序不變
(Ri的序號與f(Ri)是相對應的)依據 Ri 從大到小排, Ri最大序號是1, 其次是 2,… 一直到 n.
f(R1)=1 等式右邊數字是Ri排序以後的排序順序的序號結果應如下:
f(R1)=1, f(R2)=4, f(R3)=3, f(R4)=2在Oracle的存儲過程中該怎麽處理呢?謝謝大家阿~幫我一下哦~^_^
R2=84.
R3=91.
R4=147.對於以上的4個數字進行一個排序,但是縂的順序不變
(Ri的序號與f(Ri)是相對應的)依據 Ri 從大到小排, Ri最大序號是1, 其次是 2,… 一直到 n.
f(R1)=1 等式右邊數字是Ri排序以後的排序順序的序號結果應如下:
f(R1)=1, f(R2)=4, f(R3)=3, f(R4)=2在Oracle的存儲過程中該怎麽處理呢?謝謝大家阿~幫我一下哦~^_^
create table table1(A VARCHAR2(10),B INTEGER);
INSERT INTO TABLE1 VALUES('R1',196);
INSERT INTO TABLE1 VALUES('R2',84 );
INSERT INTO TABLE1 VALUES('R3',91 );
INSERT INTO TABLE1 VALUES('R4',147);
COMMIT;
SELECT A,B,COUNT(B) OVER(ORDER BY B DESC)B1 FROM TABLE1 ORDER BY A;A B B1
---------- ---------- ----------
R1 196 1
R2 84 4
R3 91 3
R4 147 2
R2=84.
R3=91.
R4=147.對這個數字進行排序,從大到小,結果應如下
序號
R1=196 1
R4=147. 2
R3=91. 3
R2=84. 4最終想得到的結果是
f(R1)=1
f(R2)=4
f(R3)=3
f(R4)=2
2 from (select tt.*
3 from (select 'R1' as name, 196 as value
4 from dual
5 union all
6 select 'R2' as name, 84 as value
7 from dual
8 union all
9 select 'R3' as name, 91 as value
10 from dual
11 union all
12 select 'R4' as name, 147 as value from dual) tt
13 order by tt.value desc
14 ) zz
15 order by zz.name;'F('||ZZ.NAME||')' ROWNUM
------------------ ----------
f(R1) 1
f(R2) 4
f(R3) 3
f(R4) 2