最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

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

来源:懂视网 责编:小采 时间:2020-11-09 12:06:40
文档

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

Oraclerow_number分析函数简化了我们的很多操作:18802 13009060195 9 18830 13009063333 7 //分析: //这不是一个很难的问题, /*********分组统计*** Oracle row_number分析函数简化了我们的很多操作 [日期:2011-05-04] 来源:Linux社区 作者:BOBO12082119 [字体:]
推荐度:
导读Oraclerow_number分析函数简化了我们的很多操作:18802 13009060195 9 18830 13009063333 7 //分析: //这不是一个很难的问题, /*********分组统计*** Oracle row_number分析函数简化了我们的很多操作 [日期:2011-05-04] 来源:Linux社区 作者:BOBO12082119 [字体:]

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

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

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

Oraclerow_number分析函数简化了我们的很多操作:18802 13009060195 9 18830 13009063333 7 //分析: //这不是一个很难的问题, /*********分组统计*** Oracle row_number分析函数简化了我们的很多操作 [日期:2011-05-04] 来源:Linux社区 作者:BOBO12082119 [字体:]
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top