首页
App
&
Coffee
文档
项目
分享
反馈
俱乐部
登录
注册
请教个sql 查询问题,
huntxt
2021-08-03 10:02
id
type
data
time
1
1
11
2021/07/11
2
1
22
2021/07/13
3
2
33
2021/07/10
4
2
44
2021/07/15
type会有很多,我想每个type查出最新的记录(每个type只显示查一条)
项目:
JFinal
评论区
杜福忠
2021-08-03 10:34
select t.type, t.data, t.time
from (
select type, data, time
from 表名
order by time DESC --可自行修改
limit 9999999 --不能去掉limit
) t
group by t.type
回复
huntxt
2021-08-03 12:29
@杜福忠
收到,谢谢
回复
lcmkc
2021-08-12 01:30
select * from table a where time = (select max(time) from table a1 where a.type = b.type)
这个不是更简单吗
回复
lcmkc
2021-08-12 01:32
不过无论是杜大佬
@杜福忠
的方法,还是我的方法,还是要注意索引的设置,不然数据量一多,有你头疼的
回复
huntxt
2021-08-12 11:05
@lcmkc
你这个处理方案有问题,我的实际数据大概100000条,里边有text(大概30-100k),用
@杜福忠
的方案大概要12s只取id然后in大概3s,你那个方案我取id就直接卡死
回复
lcmkc
2021-08-17 13:41
@huntxt
这个不是我自己想的方案哈哈哈,这个是Oracle PeopleSoft这套产品查询最新数据的内置sql,工作单位里接近千万数据查询速度还是很可以的嘞,因为这套erp产品要适配多个数据库产品,Oracle天生不支持Limit,所以才要这样写。。我自己做小程序用mysql,相同方法6w多条需要查询最新数据,也没卡死啊,取出所有字段所有行实测也是4-5s左右(我没有text字段,理所应当少了一些时间了),如果加上筛选条件精确到某几条,毫秒级返回。。所以我估计是索引问题吧,这个很吃索引的速度的。
回复
huntxt
2021-08-17 14:11
@lcmkc
好的,我再研究一下
回复
发送
我要反馈
热门反馈
扫码入社
from (
select type, data, time
from 表名
order by time DESC --可自行修改
limit 9999999 --不能去掉limit
) t
group by t.type