一个表有两个字段:
用户标识 userID  NUMBER(14) X 
访问月份 visitMon NUMBER(14) X userID   visitMon
-------------------------
1         3
1         5
2         1
3         8
1         4
3         9
2         9如何最高效找到同一个用户标识(userID)的访问月份(visitMon)字段最小的记录
因为数据量上千万,所以要求效率高才行
如,根据上表,我想要得到
userID   visitMon
-------------------------
1         3
2         1
3         8求高手指点!

解决方案 »

  1.   

    select tt.userID,min(tt.visitMon) as visitMon
      from tablename tt
     group by tt.userID;
      

  2.   

    select tt.userID,min(tt.visitMon) as visitMon
      from tablename tt
     group by tt.userID;
      

  3.   

    create table 牺牲空间换时间 as 
    select tt.userID,min(tt.visitMon) as visitMon
    from tablename tt
    group by tt.userID;ALTER TABLE 牺牲空间换时间 ADD (
      CONSTRAINT woshiconstraint
     PRIMARY KEY
     (userid)
        USING INDEX ;
    select * from 牺牲空间换时间 where userid = '我是测试数据' ;多次查询保证你快。