A             date                    C  
20A      2006-07-04               23  
19A      2006-09-03               18  
20A      2006-09-14               19  
19A      2006-07-04               17  
18        2005-09-03              20  
20A      2006-05-03               16  
 
要求显示如下    
A        B        C    date
20A    23       4      2006-07-04
19A    18       1      2006-07-04查出最新的两条记录的C,B显示最新的C,C显示最新的B减去倒数第二新的B,不知道有没有什么好的语句。  现在我可以查出来,但由于这个表有几十万条数据,最后的时间需花费20多秒,不知道哪位高手有没有更高效的SQL.

解决方案 »

  1.   


    select A,max(c),count(a),max(date)
    from table 
    group by a
      

  2.   

    ,max(c),count(a)?23最时间最新的.4为最新的23减去第二新的19,得四.
      

  3.   

    用临时表先找出
    A        B           date
    20A    23           2006-07-04
    19A    18            2006-07-04
    然后再用临时表找C