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,您的列名可怕,请勿对列(组,日期,表)使用保留字。