sql – 從表中選擇行的最大日期的信息


 SELECT  a.spid,z.max_date,a.kcshl 
  FROM spkfjc a 
inner join 
(SELECT   a.spid AS spid ,MAX(b.rq) AS max_date   FROM  spkfjc a   JOIN splsk  b ON a.spid=b.spid  WHERE a.kcshl>0 
AND a.kcshl=b.jcshl GROUP BY a.spid   )z
on a.spid=z.spid   

我想要獲取每個唯一的組,其中date是max,而check大於0.因此返回結果如下所示:

  1. group date checks
  2. 2 1/1/2013 800
  3. 1 1/3/2013 700
  4. 3 1/5/2013 200

 

解決方法

  1. SELECT group,MAX(date) as max_date
  2. FROM table
  3. WHERE checks>0
  4. GROUP BY group

這樣做可以獲得最大的日期。將它加入到數據中以獲取其他列:

  1. Select group,max_date,check
  2. from table t
  3. inner join
  4. (SELECT group,MAX(date) as max_date
  5. FROM table
  6. WHERE checks>0
  7. GROUP BY group)a
  8. on a.group = t.group and a.max_date = date

內連接功能作為過濾器,僅獲取最大記錄。

FYI,您的列名可怕,請勿對列(組,日期,表)使用保留字。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM