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

测速数据库

同一个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;

时间: 2024-12-21 21:39:41

查询最小值对应的非group by字段的相关文章

错误 10 非静态的字段、方法或属性“Test10.Program.a”要求对象引用

1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 namespace Test10 7 { 8 class Program 9 { 10 //int a = 0; 注意存放位置!!!!! 11 const int i = 927; 12 static void Main(string[] args) 13 { 14 int a = 0; 15 try

非静态的字段、方法或属性“System.Web.UI.Page.ClientScript...”要求对象引用 (封装注册脚本)

在写项目时想对asp.net的注册前台脚本事件进行封装,就添加了一个BasePage.cs页面,但一直报错‘非静态的字段.方法或属性“System.Web.UI.Page.ClientScript...”要求对象引用”’ 原写法: /// <summary> /// 显示客户端提示框 /// </summary> /// <param name="msg"></param> public static void ShowMsg(strin

非静态的字段,方法或属性要求对象引用如何解决

App_Code.SendMessHelper.SendMessage(): 这样写会报非静态的字段,方法或属性要求对象引用 类里面的方法有兩种表現:一种是直接可以來用的,还有一种是必须实例化以后才能使用的.前者要求在方法生明的時候必須加上static关键字(是不是想起Main方法了???),因爲這個方法不能被实例化!后者就不能加static了,這種方法不能像前面的一樣通過类名.方法名來调用,必須通過实例名.方法名來調用(实例化的过程就是創建一個对象的么). 正确的形式: SendMessHel

通过id查询用户,但是只返回指定的字段

使用hibernate和spring MVC 通过id查询到一个用户,但是只返回指定的字段 方式一: 拼接hql /*** * 通过数据库ID查询用户,但是只返回指定的字段 * @param id * @param propertyNames : 指定的多个成员变量 * @return */ public Object[] getPropertiesById(int id,String[] propertyNames){ if(ValueWidget.isNullOrEmpty(property

查询数据库里所有表名和字段名的语句

查询数据库里所有表名和字段名的语句SQL 查询所有表名:SELECT NAME FROM SYSOBJECTS WHERE TYPE='U'mysql: SELECT * FROM INFORMATION_SCHEMA.TABLES查询表的所有字段名:SELECT NAME FROM SYSCOLUMNS WHERE ID=OBJECT_ID(' 表名' )SELECT * FROM INFORMATION_SCHEMA.TABLESSELECT * FROM INFORMATION_SCHEM

oracle select非group by的字段

可以把group by的结果集当作一个表,然后从这里表里取数就可以了. e.g. SELECT A.PROJECT_CODE,A.DIE_NO,E.ONE_CONSUMING FROM (SELECT T.PROJECT_CODE, T.DIE_NO, SUM(T.OFFLINE_QTY) OFFQTY FROM DATA_PLAN T WHERE T.BEGIN_DATE <= SYSDATE AND T.BEGIN_DATE > SYSDATE - 10 GROUP BY T.PROJEC

mysql 设置@@sql_mode 解决查询非分组里字段报错问题

1 查询sql_mode SELECT @@sql_mode; 2 把查询的值复制黏贴,去掉ONLY_FULL_GROUP_BY,重新设置值 SET @@sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'; 3 上面是改变了全局sql_mode,对于新建的数据库有效.对于已存在的数据库,则需

mysql中查询实例中不包含3个字段所有表

需要查询三个字段在某实例下所有库中表里的存在信息,且表面的结尾不包括_数字的信息. SELECT  TABLE_SCHEMA,TABLE_NAME,sum(case when COLUMN_NAME in ('user','host','password') then 1 else 0 end) flag FROM information_schema.`COLUMNS`  a WHERE   TABLE_SCHEMA='mysql' group by TABLE_SCHEMA,TABLE_NA

Oracle 查询库中所有表名、字段名、表名说明、字段名说明(原创)

查询所有表名:select t.table_name from user_tables t;查询所有字段名:select t.column_name from user_col_comments t;查询指定表的所有字段名:select t.column_name from user_col_comments t where t.table_name = 'BIZ_DICT_XB';查询指定表的所有字段名和字段说明:select t.column_name, t.column_name from