读书人

看下哪位高手的sql简便大家参与哈

发布时间: 2012-05-27 05:42:30 作者: rapoo

看下谁的sql简便,大家参与哈

select * from test 结果如下:

namecity_namescan_start_times_hourvalue
CDRNC01常市2011-5-2 17:00172822680.5
CDRNC01常市2011-5-2 9:0091805635
CDRNC01常市2011-5-1 12:00122209981.125
CDRNC01常市2011-5-1 17:00172925668.75
CDRNC01常市2011-5-1 3:003249131
CSRNC05天区2011-5-10 204877610
CSRNC05天区2011-5-2 19:001917483989.82
CSRNC05天区2011-5-2 21:002120235228.57
CSRNC06开区2011-5-1 14:00147548153.242
CSRNC06开区2011-5-1 18:00186533271.611
CSRNC06开区2011-5-1 2:0022497404.404
CSRNC06开区2011-5-1 4:0041080070.781
CSRNC06开区2011-5-2 16:00167427590.879
CSRNC06开区2011-5-2 17:00178141454.531

实现效果(每个城市下面value值最大的记录):
CDRNC01常市2011-5-1 122209981.125
CSRNC05天区2011-5-1 0204877610
CSRNC06开区2011-5-1 147548153.242
CSRNC06开福区2011-5-2 178141454.531

CDRNC01常市2011-5-1 12:00122209981.125
CSRNC05天区2011-5-1 0204877610
CSRNC06开区2011-5-1 14:00147548153.242
CSRNC06开福区2011-5-2 17:00178141454.531

现在知道一种sql 如下:
select a.* from testa,(select city_name,max(value) from test group by city_name,day(scan_start_time)) b where a.city_name=b.city_name and a.value=b.value

大家 都出下意见,看还有什么好的sql。。。。。




[解决办法]

SQL code
select name,city_name,scan_start_time,s_hour,value dense_rank() over(partition by city_name order by value desc)
[解决办法]
SQL code
select *  from (select t.*,                row_number() over(partition by city_name, day(scan_start_time) order by value desc) as line          from test t) where line = 1; 

读书人网 >oracle

热点推荐