sql_轉摘_提取每行記錄多列的排名前3大值
with tb as
(select 1 id,12 a,13 b,14 c,15 d,16 e,17 f,18 g from dual union all
select 2,22,23,24,25,26,27,18 from dual union all
select 3,32,33,34,35,36,37,18 from dual union all
select 4,42,43,44,45,46,47,18 from dual union all
select 5,52,53,54,55,56,57,18 from dual union all
select 6,62,63,64,65,66,67,18 from dual),
tb2 as
(select id,a sd from tb union all
select id,b from tb union all
select id,c from tb union all
select id,d from tb union all
select id,e from tb union all
select id,f from tb union all
select id,g from tb)
select a.*,
b.最大值,
b.第二大,
b.第三大
from tb a,
(select id,
max(decode(rn,1,sd)) 最大值,
max(decode(rn,2,sd)) 第二大,
max(decode(rn,3,sd)) 第三大
from (select id,
sd,
row_number() over(partition by id order by sd desc) rn
from tb2)
group by id) b
where a.id=b.id
小結:
1,行轉列,列轉行
2,with語法的多重引用,也名巢狀
3,分析函式與decode的聯合使用,威力無窮
4,group by 妙用
5,union all使用
6,最外層where條件,主表與子表的關聯,很妙
7,decode函式僅會顯示符合其條件的值,不符合條件顯示為null;
然後合併為一行,採用max,這樣全顯示到一行記錄了,不會是多條記錄了
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-682055/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL Story摘錄(七)————觸控NULL值 (轉)SQLNull
- mysql語句:批量更新多條記錄的不同值[轉]MySql
- progit摘錄筆記Git筆記
- lftp學習備記錄--轉摘於網上FTP
- 讀書筆記摘錄:筆記
- 用分析函式分析每行裡面列值重複的列的最大個數函式
- C語言函式題-查詢陣列每行的最大值C語言函式陣列
- linux下實現刪除一個檔案每行的前幾列Linux
- JS 獲取陣列物件的值&提取Object的valueJS陣列物件Object
- SQL 如何返回最大值所在的多條記錄SQL
- 你的每行程式碼值多少錢?行程
- 《dive into python3》 筆記摘錄Python筆記
- 【筆記】statspack(三) report分析 摘錄筆記
- SQL Story摘錄(四)————資訊挖掘初步 (轉)SQL
- 《SQL Story》摘錄五——關係真相 (轉)SQL
- SQL Story摘錄(八)————資料抽取 (轉)SQL
- MSSQL多列取最大或者最小值_轉載SQL
- OGG用NOCOMPRESSDELETES記錄所有列刪除值delete
- SQL Story摘錄(六)————不可能的錯誤 (轉)SQL
- 富爸爸財務自由之路--筆記摘錄筆記
- 【摘錄】index(一)Index
- plsql_提取一個表多個列之和SQL
- 將多列值轉換為一行顯示
- 提取MySQL binlog中指定表的操作記錄MySql
- 關於資料庫取表的前N條記錄 (轉)資料庫
- SQL Story摘錄(一)————簡單查詢初探 (轉)SQL
- 讓敲過的每行程式碼產生價值行程
- <摘錄>GCC 中文手GC
- 物件導向(摘錄)物件
- SAP BI工作摘錄
- 知:孫子兵法摘錄
- 記錄在 jmeter 介面測試中 json 返回數值幾種特殊正則提取JMeterJSON
- mysql 批次更新與批次更新多條記錄的不同值實現方法MySql
- MySQL資料庫查詢多個欄位值全部相同的記錄MySql資料庫
- HDU 1026(優先佇列+BFS+前驅記錄)佇列
- MDSL記錄儀的陣列陣列
- 《計算機與電腦科學》摘錄筆記計算機筆記
- <摘錄>linux 預設的includeLinux