SELECT DISTINCT A.ID FROM TBL_FOO A where  A._TIME >1340031599000 AND A._TIME=(SELECT MAX(_TIME) FROM TBL_FOO B WHERE B.ID =A.ID)  order by A.VALUE DESC limit 5

解决方案 »

  1.   

    贴建表及插入记录的SQL,及要求结果出来看看SELECT * FROM TBL_FOO A where A._TIME >1340031599000 and 5>(select count(*)from TBL_FOO where a.id=id and a._TIME>_TIME)
      

  2.   

    类似这样的CREATE TABLE TBL_PM_LUN (
    ID BIGINT NOT NULL AUTO_INCREMENT,
    RESOURCE_ID VARCHAR (50) NOT NULL,
    UTILIZATION INTEGER DEFAULT 0,
    IS_AGGREGATED TINYINT (1) DEFAULT NULL,
    INDECATED_TIME BIGINT NOT NULL,
    AGGREGATED_TIME BIGINT DEFAULT NULL,
    PRIMARY KEY (ID),
    UNIQUE KEY `PK` (`ID`) USING BTREE,
    KEY `IDX_RESOURCE_ID` (`RESOURCE_ID`) USING BTREE,
    KEY `IDX_INDECATED_TIME` (`INDECATED_TIME`) USING BTREE,
    KEY `IDX_AGGREGATED_TIME` (`AGGREGATED_TIME`) USING BTREE
    );
      

  3.   

    你想要数据吗?257 60c0a33e7f454e52b4174339e520a7e0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1340130171000
    227 b234cd0694954ba895f605eda2990433 0 0 0 7 0 0 0 0 0 0 0 0 0 0 0 1340130171000
    类似的这样的了,第一列是自增ID
      

  4.   

    贴建表及插入记录的SQL,及要求结果出来看看要SQL语句
      

  5.   

    OR
    参考
    http://topic.csdn.net/u/20091231/16/2f268740-391e-40f2-a15e-f243b2c925ab.html?88754
    中的方法
      

  6.   

    你看了我的建表语句,索引建得有问题吗?一个RESOURCE_ID可能有多个INDECATED_TIME,我就在RESOURCE_ID,INDECATED_TIME,ID列上加了索引,还请大虾指导指导。
      

  7.   

    建了索引速度确实非常快,但是如果要建索引的话,根据业务,一个表可能需要建接近20个索引(order by 很多指标项),一般索引个数不应该超过6个吧。如果达到20个左右了,会有什么影响?
      

  8.   

    CREATE TABLE `tbl_pm_lun20120619` (
      `ID` bigint(20) NOT NULL auto_increment,
      `RESOURCE_ID` varchar(50) collate utf8_bin NOT NULL,
      `UTILIZATION` int(11) default '0',
      `QUEUE_LENGTH` int(11) default '0',
      `AVG_IO_RESPONSE_TIME` int(11) default '0',
      `MAX_IO_RESPONSE_TIME` int(11) default '0',
      `TOTAL_BANDWIDTH` int(11) default '0',
      `READ_BANDWIDTH` int(11) default '0',
      `WRITE_BANDWIDTH` int(11) default '0',
      `TOTAL_IOPS` int(11) default '0',
      `READ_IOPS` int(11) default '0',
      `WRITE_IOPS` int(11) default '0',
      `AVG_READ_IOSIZE` int(11) default '0',
      `AVG_WRITE_IOSIZE` int(11) default '0',
      `SERVICE_TIME` int(11) default '0',
      `READ_CACHE_HIT` int(11) default '0',
      `WRITE_CACHE_HIT` int(11) default '0',
      `IS_AGGREGATED` tinyint(1) default NULL,
      `INDECATED_TIME` bigint(20) NOT NULL,
      `AGGREGATED_TIME` bigint(20) default NULL,
      PRIMARY KEY  (`ID`),
      UNIQUE KEY `PK` (`ID`),
      KEY `IDX_RESOURCE_ID` (`RESOURCE_ID`),
      KEY `IDX_INDECATED_TIME` (`INDECATED_TIME`),
      KEY `dddd` (`UTILIZATION`),
      KEY `ewfwef` (`QUEUE_LENGTH`),
      KEY `eeessfsdf` (`AVG_IO_RESPONSE_TIME`),
      KEY `weweee` (`TOTAL_BANDWIDTH`),
      KEY `seewfwfwefef` (`READ_BANDWIDTH`),
      KEY `qwq` (`WRITE_BANDWIDTH`),
      KEY `sdfsdfsdfdsf` (`TOTAL_IOPS`),
      KEY `sweeweee` (`READ_IOPS`),
      KEY `sweewewweewew` (`WRITE_IOPS`),
      KEY `ssdfwefwefewfe` (`AVG_READ_IOSIZE`),
      KEY `sfweweee` (`AVG_WRITE_IOSIZE`),
      KEY `222222` (`SERVICE_TIME`),
      KEY `sdfwefwefewfwef` (`READ_CACHE_HIT`),
      KEY `445555` (`WRITE_CACHE_HIT`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
      

  9.   

    查询语句,表数据要求支持百万以上
    SELECT DISTINCT A.RESOURCE_ID AS _VALUE FROM TBL_PM_LUN20120619 A WHERE 1=(SELECT COUNT(RESOURCE_ID) FROM TBL_PM_LUN20120619 B WHERE B.RESOURCE_ID IN('b2d89dcee0ec4852851eaccd7b338d7c','ede6b70ef6074081bf86fe0d3c9e38f0') AND A.RESOURCE_ID=B.RESOURCE_ID AND  A.INDECATED_TIME <= B.INDECATED_TIME AND B.INDECATED_TIME >=1340081999000 AND B.INDECATED_TIME <=1340089199000) order by A.UTILIZATION DESC limit 1
      

  10.   

    参考下贴中的多种方法http://blog.csdn.net/acmain_chm/article/details/4126306
    [征集]分组取最大N条记录方法征集,及散分....
      

  11.   

     (不要高估你的汉语表达能力或者我的汉语理解能力)
       建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
       参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
       
       1. 你的 create table xxx .. 语句
       2. 你的 insert into xxx ... 语句
       3. 结果是什么样,(并给以简单的算法描述)
       4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
       
       这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。