这是一个非常好的问题,并有一个相当简单的解决方案。使用GROUP BY
和HAVING
来找出哪个用户显示什么样的重复行为。
请参阅小提琴示例here其中讨论了DDL和我用来获得所需结果的查询。
从你的描述,我建议你创建一个表,用于存储用户事件如下:
CREATE TABLE t_clickevent (
clickevent_id INTEGER,
user_id INTEGER,
clicked_button_id INTEGER,
redirected_url_id INTEGER);
添加更多的列,当你需要。这只是一个最小的结构。
使用查询,如下所示:
SELECT user_id, clicked_button_id,
redirected_url_id
FROM t_clickevent
GROUP BY user_id, clicked_button_id,
redirected_url_id
HAVING count(*) > 1;
输出:
USER_ID CLICKED_BUTTON_ID REDIRECTED_URL_ID
----------- --------------------- -----------------
1 1 2
1 2 3
干杯!