我有一个表是这样的。
    time             Sample    SampleValue
2007-4-5 13:00       Ph值         4
2007-4-5 13:01       Ph值         5
2007-4-5 13:02       Ph值         6
2007-4-5 13:00       COD值        4
2007-4-5 12:59       Ph值         4
2007-4-5 13:04       COD值        4
2007-4-5 13:10       COD值        4
2007-4-5 13:25       A            4
2007-4-5 13:16       B            4
2007-4-5 13:27       B            4怎么写一条语句,将各个Sample的最大时间的那条记录选出来。
变成:
   time             Sample    SampleValue
2007-4-5 13:27       B            4
2007-4-5 13:25       A            4
2007-4-5 13:10       COD值        4
2007-4-5 13:02       Ph值         6
这样呢?

解决方案 »

  1.   

    select a.* from 表 a
    inner join (select max(time) as time,Sample from 表 group by Sample)t on a.time=t.time and a.Sample=t.Sample
      

  2.   

    select b.*,table01.SampleValue
    from table01 inner join 
    (select  max(time) as time ,Sample     from table01 group by Sample) b
    on table01.time=b.time and table01.Sample=b.Sample
      

  3.   

    select a.* from table a 
    inner join (
    select max(time) as time,Sample from table group by Sample ) b on a.time=b.time and a.Sample=b.Sample