【发布时间】:2020-07-02 15:00:01
【问题描述】:
这是我的数据:
app_id event_type event_time
1 event1 2020-22-03 04:05:03
1 event3 2020-22-03 04:05:04
1 event2 2020-22-03 04:05:05
1 event3 2020-22-03 04:05:10
1 event1 2020-22-03 04:05:11
1 event2 2020-22-03 04:05:12
2 event3 2020-22-03 04:05:04
我想计算每个app_id 的两个事件的总和:
-
event3的数量 -
event1的数量紧跟在event2之后(基于event_time)
有了上面的数据,输出将是:
app_id count
1 3 <--- (2 * event3 + event1 followed by event2)
2 1
event3 的数量可以用:
SELECT app_id,
count(event_type = 'event3')
FROM test_table
GROUP BY app_id;
对于第二个计数,我猜数据需要GROUP BY app_id 结合ORDERBY event_time
我还看到了检查连续值的其他答案 (Count Number of Consecutive Occurrence of values in Table),但我无法使其适应我的用例
【问题讨论】:
标签: sql postgresql