gpt4 book ai didi

mysql - 在 MySql 中获取具有两列最大值的行

转载 作者:行者123 更新时间:2023-11-29 05:05:00 26 4
gpt4 key购买 nike

我有一个表,其中包含我想要的 id 、 primaryid 、 data 、 dataname 列只有包含最大 id 和 primaryid 的行

create table #temp
(
id int,
primaryid int,
data nvarchar(20),
data_name nvarchar(30)
)


insert into #temp
values (1,1,'3223sfd','434'),(1,2,'sdfsd','dfsdfsd'),
(1,3,'sdfs897d','898'),(1,4,'898','545'),(1,5,'898','uuyu'),
(2,1,'3223sfd','434'),(2,2,'sdfsd','dfsdfsd'),
(2,3,'sdfs897d','898'),(2,4,'898','545'),(2,5,'898','uuyu')

我通过以下查询实现了这一点

select T.id , T.primaryid , T.data , T.data_name from #temp T , (select ID, max(primaryid) rank from #temp t2  group by id ) as T2
where t.primaryid = t2.rank group by T.id , T.primaryid , T.data , T.data_name

但我的表有超过 10 万条记录,我想担心这一点

将为此优化什么查询?

最佳答案

你可以在这里使用子查询:

select * 
from #temp t
where primaryid = (select max(tt.primaryid) from #temp tt where tt.id = t.id);

关于mysql - 在 MySql 中获取具有两列最大值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50172889/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com