oracle给每行加上序号,Oracle 根据分类字段给查询结果添加序号
一、分類排序
SELECT ROW_NUMBER() OVER(PARTITION BY T.CLASS_NAME ORDER BY T.SCORE) AS IDX, T.* FROM TB_SCORE T;
二、分類逐行統計
SELECT SUM(T.STU_NUM) OVER(PARTITION BY T.CLASS_NAME ORDER BY T.SCORE DESC) AS IDX, T.* FROM TB_SCORE T;
PS:純SQL實現分類排序
--==============================================
-- 根據分類字段給記錄添加遞增或遞減序號
--============================================
SELECT RN, IDX, YEAR_S, RELEASE_TIME FROM (
-- 獲取分類后的序號 IDX
SELECT (
SELECT COUNT(1) FROM (
-- 獲取排序序號 RN, 得到臨時表二
SELECT T.*, ROWNUM AS RN FROM (
-- 獲取分類字段 YEAR_S
SELECT TO_CHAR(T.RELEASE_TIME, 'YYYY') AS YEAR_S, T.* FROM TABLE_NAME T ORDER BY T.RELEASE_TIME
) T
) WHERE YEAR_S=T1.YEAR_S AND RN <= T1.RN -- 重點: 臨時表一和臨時表二關聯, 分類字段相同, 統計表二排序字段小于等于當前記錄排序字段的記錄數; RN >= T1.RN 則遞減
) AS IDX, T1.* FROM (
-- 獲取排序序號 RN, 得到臨時表一
SELECT T.*, ROWNUM AS RN FROM (
-- 獲取分類字段 YEAR_S
SELECT TO_CHAR(T.RELEASE_TIME, 'YYYY') AS YEAR_S, T.* FROM TABLE_NAME T ORDER BY T.RELEASE_TIME
) T
) T1
) WHERE IDX <= 3 ORDER BY RELEASE_TIME
總結
以上是生活随笔為你收集整理的oracle给每行加上序号,Oracle 根据分类字段给查询结果添加序号的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: oracle参数文件initorcl位置
- 下一篇: oracle复制sequence,ora
