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. 21/1/2013800
3. 11/3/2013700
4. 31/5/2013200

 

解决方法


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

这样做可以获得最大的日期。将它加入到数据中以获取其他列:


1. Selectgroup,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=.groupand.max_date = date

内连接功能作为过滤器,仅获取最大记录。

FYI,您的列名可怕,请勿对列(组,日期,表)使用保留字。