gpt4 book ai didi

mysql - 查询某个事件在给定时间发生的频率

转载 作者:行者123 更新时间:2023-11-29 12:09:10 25 4
gpt4 key购买 nike

[目标]
我们想知道事件“A”在时间“X”之前发生的频率。更具体地说,根据下面的数据集,我们希望找出之前购买的数量。

[上下文]
DMBS:MySQL 5.6
我们有以下数据集:

user | date               
1 | 2015-06-01 17:00:00
2 | 2015-06-02 18:00:00
1 | 2015-06-03 19:00:00


[所需输出]

user | date                  | purchase count
1 | 2015-06-01 17:00:00 | 1
2 | 2015-06-02 18:00:00 | 1
1 | 2015-06-03 19:00:00 | 2


[已尝试]
我们设法使用表本身的内部联接来获取特定日期的计数。

[问题]
- 如何在单个查询中执行此操作?

最佳答案

这可以使用用户定义的变量来完成,正如前面的答案中已经提到的那样,速度更快。这需要根据某种顺序为每个组创建增量变量。并从给定的数据集中获取其用户日期

这里是如何实现它

select 
user,
date,
purchase_count
from (
select *,
@rn:= if(@prev_user=user,@rn+1,1) as purchase_count,
@prev_user:=user
from test,(select @rn:=0,@prev_user:=null)x
order by user,date
)x
order by date;

将表名称test更改为您的实际表名称

http://sqlfiddle.com/#!9/32232/12

关于mysql - 查询某个事件在给定时间发生的频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30980458/

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