gpt4 book ai didi

mysql - 加入 Max 和 pre-Max 行

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

我有两个表“sites”和“index_log”。表 'sites' 是有关站点的信息(用户 ID、名称、描述 ...) 表 index_log 包含日期、索引计数和站点 ID 列。所以我想获取每个站点的最后一个和前一个 index_log 行,其中 userid = 10。这是我的变体:

 SELECT ff.id,
ff.siteurl,
ff.last_count,
ff.last_date,
il2.index_count as previous_count,
MAX(il2.date) as previous_date
FROM (
SELECT s.siteurl,
s.id,
il.index_count as last_count,
MAX(il.date) as last_date
FROM sites s
LEFT JOIN index_logs il ON il.siteid = s.id
WHERE s.userid = 10
GROUP BY s.id
) as ff
LEFT JOIN index_logs il2 ON il2.siteid = ff.id AND il2.date < ff.last_date
GROUP BY ff.id

但在此变体中,index_count 列(最后一个和之前的)与最大日期行不匹配。我希望得到你的帮助。

最佳答案

这将为您提供每个 sites.id 的最后 2 个日志条目

; with CTE as
(
SELECT s.siteurl, s.id, il.index_count, il.date,
RN = ROW_NUMBER() OVER (PARTITION BY s.id ORDER BY il.date DESC)
FROM sites s
JOIN index_logs il ON il.siteid = s.id
WHERE s.userid = 10
)
SELECT *
FROM CTE
WHERE RN <= 2

关于mysql - 加入 Max 和 pre-Max 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36005246/

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