gpt4 book ai didi

sqlite - 取回每个 ID 的第二个最新日期,而不是最新日期

转载 作者:行者123 更新时间:2023-12-03 17:58:12 24 4
gpt4 key购买 nike

所以我对 有疑问SQlite .我有一张 table 结果 .

我现在想写一个查询,它给我的不是最新的,而是之后的行。让我们看一个例子:

ID,searchID,hit,time
1,1,3,1-1-2008
1,1,8,1-1-2009
1,1,4,1-1-2010
1,2,9,1-1-2011
1,2,10,1-1-2009

我想现在每个 searchID 取回一次(最新版本):
1,1,8,1-1-2009
1,2,10,1-1-2009

最后一次真的很容易做到
SELECT searchID, hit, max(time)
FROM results
group BY searchID

但由于某些原因,我需要最新版本。

PS:这个我找到了 What is the simplest SQL Query to find the second largest value?但无法申请我的案子。

最佳答案

使用除 1/1 之外的任何其他日期/月份都会弄乱日期字符串比较;您应该使用像 yyyy-mm-dd 这样的日期格式反而。

假设您有工作日期比较,您可以使用 compound query 删除所有最大行数。 ,然后对其余部分进行分组:

SELECT searchID, hit, MAX(time)
FROM (SELECT searchID, hit, time
FROM results
EXCEPT
SELECT searchID, hit, MAX(time)
FROM results
GROUP BY searchID)
GROUP BY searchID

或者您可以在分组之前检查该时间不是组中最大的时间:
SELECT searchID, hit, MAX(time)
FROM results
WHERE time < (SELECT MAX(time)
FROM results AS r2
WHERE r2.searchID = results.searchID)
GROUP BY searchID

关于sqlite - 取回每个 ID 的第二个最新日期,而不是最新日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26662167/

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