gpt4 book ai didi

postgresql - SQL查询以根据事件序列计算用户数

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

我有一个名为 test 的表,它按时间排序。

 user_id  event      time
1 e1 t1
1 e3 t2
1 e2 t3
2 e2 t4
2 e1 t5
2 e5 t6
3 e2 t7
3 e4 t8

我必须找出在 e1 发生在 e2 之前的事件中有多少个唯一的 user_id。这里的答案是 one with user_id 1.

我正在使用 postgresql。任何帮助将非常感激。

最佳答案

这可能是您的解决方案,带有子选择的事件,其中 ev2:

WITH event(user_id,event,time) AS (
VALUES (1,'e1','t1'),
(1,'e3','t2'),
(1,'e2','t3'),
(2,'e2','t4'),
(2,'e1','t5'),
(2,'e5','t6'),
(3,'e2','t7'),
(3,'e4','t8'))
SELECT count(event.event) FROM event
JOIN (SELECT user_id, time
FROM event WHERE event = 'e2') AS ev2 ON event.user_id = ev2.user_id
WHERE event.time < ev2.time AND event.event = 'e1'

过滤ev2之前的所有行,值应该等于ev1

关于postgresql - SQL查询以根据事件序列计算用户数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36617984/

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