首頁 > 資料庫 > mysql教程 > Oracle row_number分析函数简化了我们的很多操作

Oracle row_number分析函数简化了我们的很多操作

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
發布: 2016-06-07 17:01:02
原創
904 人瀏覽過

18802 13009060195 9 18830 13009063333 7 //分析: //这不是一个很难的问题, /*********分组统计***

Oracle row_number分析函数简化了我们的很多操作

[日期:2011-05-04] 来源:Linux社区  作者:BOBO12082119 [字体:]

//问题:  
CI  MSISDN      CNT  
18802   13009060195 9  
18830   13009060195 1  
18837   13009060195 2  
18829   13009063333 5  
18830   13009063333 7  
18847   13009063333 4  
//结果:  
CI  MSISDN      CNT  
18802   13009060195 9  
18830   13009063333 7  
//此问题是想把MSISDN相同的项的CNT查询出来  
//碰到此问题,我是这么思考的:  
//首先,将MSISDN相同的项的CNT查询出来,构成一个结果集:  
with t as(  
     select '18802' ci,'13009060195' msisdn,9 cnt from dual union all  
     select '18830','13009060195',1 from dual union all  
     select '18837','13009060195',2 from dual union all  
     select '18829','13009063333',5 from dual union all  
     select '18830','13009063333',7 from dual union all  
     select '18847','13009063333',4 from dual)  
select msisdn,max(cnt) cnt  
from t  
group by msisdn  
--  
MSISDN             CNT  
----------- ----------  
13009060195          9  
13009063333          7  
//其次,将原表与此结构集相匹配,如果MSISDN和CNT都相同的就提出来  
select t.*  
from t,(  
     select msisdn,max(cnt) cnt  
     from t  
     group by msisdn  
     ) b  
where t.msisdn=b.msisdn and   
      t.cnt=b.cnt;  
//这样就能得到我们想要的结果,如下:  
CI    MSISDN             CNT  
----- ----------- ----------  
18802 13009060195          9  
18830 13009063333          7  
//分析:  
//这不是一个很难的问题,,  
/*********分组统计******/ 
//可这又是子查询,又是表连接的,怎么那么费事呢?  
//肯定还有更好的解决方法:  
select ci,msisdn,cnt   
from (select ci,  
             msisdn,  
             cnt,  
             row_number()over(partition by msisdn order by cnt desc) rn from t)  
where rn=1; 

linux

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
TP5.1首發教程和獨孤九劍的TP5教程區別
來自於 1970-01-01 08:00:00
0
0
0
有什麼經典的symfony1.2教程
來自於 1970-01-01 08:00:00
0
0
0
js進階教程
來自於 1970-01-01 08:00:00
0
0
0
怎麼沒有mui教程
來自於 1970-01-01 08:00:00
0
0
0
PHP靜態代理程式和動態代理程式教程
來自於 1970-01-01 08:00:00
0
0
0
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板