码迷,mamicode.com
首页 > 其他好文 > 详细

查询最小值对应的非group by字段

时间:2015-11-09 18:32:54      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:

测速数据库

同一个ip有多条记录,要查询每个ip里最小时延对应的isp信息。

方法一:将ip和min(时延)的查询结果建新表t,再联合原表查询

1、create table t(ip int, wAverDelay smallint, primary key (ip));

2、insert into t select ip, min(wAverDelay) as wAverDelay from hummer_ip_speed_addip_20151108_Hash55 group by ip;

3、select isp2, count(*) from (select isp2 from hummer_ip_speed_addip_20151108_Hash55, t where hummer_ip_speed_addip_20151108_Hash55.isMultiIP=1 and hummer_ip_speed_addip_20151108_Hash55.ip=t.ip and hummer_ip_speed_addip_20151108_Hash55.wAverDelay=t.wAverDelay)tmp group by tmp.isp2;

 

方法二:先排序,再取每个ip对应的第一条记录。效率低一点

select isp2, count(*) from (select isp2 from (select * from hummer_ip_speed_addip_20151108_Hash55 where isMultiIP=1 order by ip, wAverDelay)A group by A.ip)B group by B.isp2;

查询最小值对应的非group by字段

标签:

原文地址:http://www.cnblogs.com/kelly-yx/p/4950514.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!