gpt4 book ai didi

mysql - 计算第一次发生后 N 天内的事件

转载 作者:行者123 更新时间:2023-11-29 02:13:53 25 4
gpt4 key购买 nike

我在一个表中有一系列行(各种文章的综合浏览量),其中包含 URL 和时间戳列,我想查看每篇文章在首次综合浏览后 N 天内的综合综合浏览量。

我可以使用“GROUP BY url”查看每篇文章的总浏览量,我可以使用 WHERE 子句只计算某个硬编码日期范围内的浏览量,但我需要为每个文章自定义该日期范围唯一网址。

我相信我可以使用 MIN() 找到每个 URL 的第一次出现,但我需要以某种方式将这些 MIN() 值与 WHERE 子句一起使用。我想我需要使用 JOIN,但我似乎无法理解该语法。帮助非常感谢!

最佳答案

这几乎和你解释的一模一样。

带有 JOIN

的版本
SELECT v.url, COUNT(*) views
FROM pageviews v JOIN (
SELECT url, MIN(viewed_at) first_viewed_at
FROM pageviews
GROUP BY url
) f
ON v.url = f.url
WHERE v.viewed_at < f.first_viewed_at + INTERVAL 3 DAY
GROUP BY v.url;

带有相关子查询的版本

SELECT url, COUNT(*) views
FROM pageviews v
WHERE viewed_at < (
SELECT MIN(viewed_at)
FROM pageviews
WHERE url = v.url
) + INTERVAL 3 DAY
GROUP BY v.url;

这是一个dbfiddle演示

关于mysql - 计算第一次发生后 N 天内的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44219612/

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