gpt4 book ai didi

mysql - 在 SQL 中,如何通过比较时间属性为每个用户选择一行中的值,但只选择最新的行?

转载 作者:行者123 更新时间:2023-11-30 22:52:05 24 4
gpt4 key购买 nike

我有一个表,其中包含属性 userid、value 和 time,表示为用户设置一些值。我想制作一个包含用户 ID 和值但仅限于最新时间的表。例如,如果同一用户在时间 40 处有一行显示“绿色”,而另一行在时间 50 处显示“蓝色”,则查询结果应显示为“蓝色”。这是我尝试执行此操作的示例,但用户 6 仍然说“绿色”,即使属性“蓝色”是较晚的时间。

http://sqlfiddle.com/#!2/87817/1

你应该怎么做才能改变这种情况?

最佳答案

您可以通过在子查询中为每个 userid 找到 MAX(time),然后加入它以找到 value 来实现此目的与最近的时间关联:

SELECT p.*
FROM Persons p
JOIN (SELECT userid
,MAX(time) as latest_time
FROM Persons
GROUP BY userid
) sub
ON p.userid = sub.userid
AND p.time = sub.latest_time

演示:SQL Fiddle

关于mysql - 在 SQL 中,如何通过比较时间属性为每个用户选择一行中的值,但只选择最新的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27895377/

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