小白教程

 找回密码
 立即注册
查看: 10953|回复: 6

[已解决]mysql,求教数据分组后取第一条的问题

[复制链接]

1

主题

1

帖子

3

积分

新手上路

Rank: 1

积分
3
发表于 2021-5-8 11:19:31 | 显示全部楼层 |阅读模式
现有表数据如下,需要按照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
最佳答案
2021-5-29 14:31:08
应该是要分组排序取第一条
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) t2  where t1.column1=t2.column1,t1.column2=t2.column2 and t1.column4<t2.column4)
回复

使用道具 举报

0

主题

1

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2021-5-11 07:21:51 | 显示全部楼层
SELECT column1,column2,max(column4)
from table_column
group by column1,column2
回复

使用道具 举报

0

主题

1

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2021-5-13 22:18:08 | 显示全部楼层
先分组,在主键倒排序,取第一条
select 字段 from table_column group by column1, column2 order by 主键 desc limit 1;
回复

使用道具 举报

5

主题

9

帖子

31

积分

新手上路

Rank: 1

积分
31
发表于 2021-5-17 22:06:15 | 显示全部楼层
SELECT column1,column2,max(column3) ,max(column4)
from table_column
group by column1,column2
回复

使用道具 举报

0

主题

1

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2021-5-24 19:09:38 | 显示全部楼层
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
回复

使用道具 举报

1

主题

2

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2021-5-29 14:31:08 | 显示全部楼层 &
应该是要分组排序取第一条
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) t2  where t1.column1=t2.column1,t1.column2=t2.column2 and t1.column4<t2.column4)
回复

使用道具 举报

0

主题

1

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2021-6-2 13:23:55 | 显示全部楼层
最后的 limit 1是作用于全部结果,所以最后只取到一条数据,是不对的,你自己实验下。我要取的是分组后取每组里的最新一条,不是全部结果里取一条。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|小白教程 ( 粤ICP备20019910号 )

GMT+8, 2024-11-24 14:05 , Processed in 0.035789 second(s), 28 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

快速回复 返回顶部 返回列表