mysql,求教数据分组后取第一条的问题
现有表数据如下,需要按照column1,column2进行分组,然后取column4最新的一条,其中column4有最新时间相同的,这种情况下如何取其中一条呢?谢谢。column1,column2,column3,column4
1,2,3,2019-06-01:00:00:00
1,2,4,2019-06-01:00:00:00
5,6,7,2019-06-01:00:03:00
8,9,10,2019-06-01:01:00:00
8,9,11,2019-06-01:01:00:00
SELECT column1,column2,max(column4)
from table_column
group by column1,column2 先分组,在主键倒排序,取第一条
select 字段 from table_column group by column1, column2 order by 主键 desc limit 1; SELECT column1,column2,max(column3) ,max(column4)
from table_column
group by column1,column2 select * from (
select a.*,
if(@column1=column1 and @column2=column2,@rownum:=@rownum+1,@rownum:=1) AS Rn,
@column1:=column1 ncolumn1,
@column2:=column2 ncolumn2
from table_column a,(select@rownum:=0,@column1:=null,@column2:=null) b
) c
where rn=1 应该是要分组排序取第一条
select t1.* from
(SELECT column1,column2,max(column3) column3,max(column4) column4 from table_column group by column1,column2) t1
where 1>(select count(*) from(SELECT column1,column2,max(column3) column3,max(column4) column4 from table_column group by column1,column2) t2where t1.column1=t2.column1,t1.column2=t2.column2 and t1.column4<t2.column4) 最后的 limit 1是作用于全部结果,所以最后只取到一条数据,是不对的,你自己实验下。我要取的是分组后取每组里的最新一条,不是全部结果里取一条。
页:
[1]