row_number() over(partition by a order by b desc) rn

row_number() over(partition by a order by b desc) rn 用法:

 

用a分组,根据b排序

 

rn为顺序值.(当第一组为3条数据,那么rn的值是:)

rn

-----

1

2

3

 

实际运用:

TABLE A
------------------------------------
A        B          C
91187    20090101    北京
91188    20090201    天津
91189    20090101    菏泽
91187    20090201    南昌
91188    20090301    太原


TABLE B
------------------------------------
A        B         
91187    CC1009     
91188    CC1010
91189    CC1011
91187    CC1012
91188    CC1013

结果:
results:
--------------------------------------
A        B(车号)          C            D
CC1009    91187    20090201        南昌
CC1010    91188    20090301        太原
CC1011    91189    20090101        菏泽
CC1012    91187    20090201        南昌
CC1013    91188    20090301        太原

意思是:根据B表中的A列进行关联,当B表中的A列B列不相同时,
当B中的A列和A中的A列相同时,取出A表中B列最大的数据,放到对应的车号所在的行中.

 

====================

[sql]

 

select c1,c2,c3,c4
  from
(select B.B c1,B.A c2,A.B c3,A.C c4,row_number()over(partition by B.B order by A.b desc) rn
  from A,B
where A.A=B.A) aa
where rn=1;

 

[/sql]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值