gpt4 book ai didi

sql - 在连续的 Postgresql 行中查找数据模式

转载 作者:行者123 更新时间:2023-11-29 14:00:32 25 4
gpt4 key购买 nike

我想问 Postgres 一个事件出现两次的频率,每行一次。例如,如果我有如下用户事件:

  • 用户 1:点击按钮 1,重定向到页面 2
  • 用户 1:点击按钮 2,重定向到页面 3
  • 用户 1:点击按钮 18,重定向到第 100 页
  • 用户 1:点击按钮 1,重定向到页面 2
  • 用户 1:点击按钮 2,重定向到页面 3

然后我会看到模式 ((button 1, page 2) => (button 2, page 3)) 算作两次出现。

这是否可能,如果可能,如何实现?

最佳答案

这是一个非常好的问题,并且有一个相当简单的解决方案。使用 GROUP BYHAVING 找出哪个用户显示了哪种重复行为。

请参阅 fiddle 示例 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

干杯!

关于sql - 在连续的 Postgresql 行中查找数据模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20988467/

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