gpt4 book ai didi

MySQL查询获取总访问次数超过特定总和的日期

转载 作者:行者123 更新时间:2023-11-30 01:31:54 26 4
gpt4 key购买 nike

我有一个表,用于存储不同网站的每日指标。表格示例:

域名统计

|DomainId |     StatPullTime    | Visits |
+---------+---------------------+--------+
1 | 2013-06-20 00:00:00 | 500 |
1 | 2013-06-21 00:00:00 | 500 |
1 | 2013-06-22 00:00:00 | 500 |
1 | 2013-06-23 00:00:00 | 500 |
1 | 2013-06-24 00:00:00 | 500 |
1 | 2013-06-25 00:00:00 | 500 |
1 | 2013-06-26 00:00:00 | 500 |
1 | 2013-06-27 00:00:00 | 1000 |

因此,我需要创建一个查询,该查询将从今天的日期开始,每天返回,直到访问总和大于 2999。

在示例表中,它将返回 2013-06-23。

这是我能想到的最接近的:

SELECT SUM(Visits) AS Visits, StatPullTime
FROM DomainStats
GROUP BY StatPullTime HAVING SUM(Visits) > 2999

最佳答案

以下是使用纯 SQL 实现此操作的方法,但如果记录回溯很远,效率可能会非常低。

SELECT a.DomainId DomainId, a.StatPullTime StatPullTime, SUM(b.Visits) Visits
FROM DomainStats a
JOIN DomainStats b ON a.DomainId = b.DomainId AND b.StatPullTime >= a.StatPullTime
GROUP BY DomainId, StatPullTime
HAVING Visits < 3000
ORDER BY DomainId, StatPullTime DESC

速度慢的原因是它执行 O(N2) 自连接。 @Tomas的答案更实用。

关于MySQL查询获取总访问次数超过特定总和的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17350873/

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