【发布时间】:2019-08-15 15:04:02
【问题描述】:
每次用户在我的应用程序中启动会话时,我都会填写一个表格。但如果他们在 10 分钟内完成,我不想多次计算他们的会话。我该怎么做?
这是一个从表中返回的示例
select
*
from table
limit 100
+----------+--------+---------+----------------+
| event_ID | userid | city_id | created_at |
+----------+--------+---------+----------------+
| 1 | a | 1 | 15/08/19 10:10 |
| 2 | b | 1 | 15/08/19 10:11 |
| 3 | a | 1 | 15/08/19 10:14 |
| 4 | a | 1 | 15/08/19 10:25 |
| 5 | b | 1 | 15/08/19 10:27 |
| 6 | c | 1 | 15/08/19 10:30 |
| 7 | c | 1 | 15/08/19 10:35 |
| 8 | d | 1 | 15/08/19 10:40 |
| 9 | d | 1 | 15/08/19 10:49 |
| 10 | c | 1 | 15/08/19 10:55 |
+----------+--------+---------+----------------+
最后,我想计算每个用户的 unique event_id,前提是唯一的 event_id 由每 10 分钟发生的次数定义
所以最后应该是这样的:
+--------+------------------+
| userid | unique_event_ids |
+--------+------------------+
| a | 2 |
| b | 2 |
| c | 2 |
| d | 1 |
+--------+------------------+
+--------+------------------+
| Total | 7 |
+--------+------------------+
关于如何开始的任何建议?
【问题讨论】:
-
在您的示例中 d 也应该产生 2(40 和 51)
-
你说得对,我忘了编辑。现在是正确的
标签: sql postgresql