如何在PostgreSQL中将输入时间戳分组为访问者特定的“会话”?

数据库

这是一些模拟数据:

visitor_id,channel,timestamp,order_id,session
100,A,1,,1
100,B,2,,1
100,A,3,,1
100,B,4,1,1
100,B,5,,2
100,B,6,,2
100,B,7,2,2
100,A,8,,3
100,A,9,,3

访客将通过渠道进入站点,并最终下订单(创建order_id)。许多访问者从来没有订购过,但我仍然想将他们的会话分组在一起(例如,确定什么是他们的第一个渠道)。最后一列是解决该问题的一个示例。

在PostgreSQL中创建有效的声明式语句是什么?有没有比我建议的更好的解决方案?

戈登·利诺夫(Gordon Linoff)

您想将值组合到一个订单中。一种方法是为每行分配一个分组ID,例如给定时间之前的订单数。这可以通过相关子查询来完成:

select md.*,
       (select count(md2.order_id)
        from mockdata md2
        where md2.visitor_id = md.visitor_id and
              md2.timestamp < md.timestamp
       ) as session
from mockdata md;

这也可以使用累计计数来完成:

select md.*,
       count(order_id) over (partition by visitor_id
                             order by timestamp
                             rows between unbounded preceding and 1 preceding
                            ) as session
from mockdata md;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在时间戳中将秒设置为00?

来自分类Dev

为特定网站的访问者禁用Chrome扩展程序?

来自分类Dev

如何知道网络访问者的本地时间?

来自分类Dev

如何在python中将确切时间与输入时间进行比较

来自分类Dev

如何在Antlr的Python访问者中进行迭代

来自分类Dev

如何在 PHPMyAdmin 中选择个人访问者的数量?

来自分类Dev

如何在Postgresql中舍入时间?

来自分类Dev

Symfony将任意数据设置为匿名访问者会话

来自分类Dev

如何将时间戳彼此接近的会话分组?

来自分类Dev

如何在带有访问者的lambda中调用std :: visit,访问者是按值捕获的函数对象

来自分类Dev

如何在laravel 4.1上植入时间戳?

来自分类Dev

如何在Hive表中插入时间戳?

来自分类Dev

如何在Doobie(Postgres)中读取/写入时间戳

来自分类Dev

如何在Hive表中插入时间戳?

来自分类Dev

如何在PostgreSQL中将文本变量转换为时间戳?

来自分类Dev

如何在phpMyAdmin中将默认时间戳设置为+1个月

来自分类Dev

如何在Jinja2中将时间戳更新为全局变量?

来自分类Dev

如何在更新过程中将空值设置为QueryDSL时间戳列?

来自分类Dev

如何在Jinja2中将时间戳更新为全局变量?

来自分类Dev

如何在HANA中将时间戳四舍五入为小时

来自分类Dev

如何在iOS中将特定的NSDate转换为UNIX时间戳

来自分类Dev

如何发布网站却阻止访问者?

来自分类Dev

如何构建 JavaScript ANTLR 访问者

来自分类Dev

用户如何在Text Field iOS中输入时间

来自分类Dev

如何在熊猫中沿时间戳分组总和?

来自分类Dev

如何在特定日期为数据框中的行移动时间戳

来自分类Dev

SQL查询以找到访问者以及日期时间

来自分类Dev

访问者模式:基于输入的数字算术

来自分类Dev

如何在Kotlin中创建没有访问者的财产?

Related 相关文章

  1. 1

    如何在时间戳中将秒设置为00?

  2. 2

    为特定网站的访问者禁用Chrome扩展程序?

  3. 3

    如何知道网络访问者的本地时间?

  4. 4

    如何在python中将确切时间与输入时间进行比较

  5. 5

    如何在Antlr的Python访问者中进行迭代

  6. 6

    如何在 PHPMyAdmin 中选择个人访问者的数量?

  7. 7

    如何在Postgresql中舍入时间?

  8. 8

    Symfony将任意数据设置为匿名访问者会话

  9. 9

    如何将时间戳彼此接近的会话分组?

  10. 10

    如何在带有访问者的lambda中调用std :: visit,访问者是按值捕获的函数对象

  11. 11

    如何在laravel 4.1上植入时间戳?

  12. 12

    如何在Hive表中插入时间戳?

  13. 13

    如何在Doobie(Postgres)中读取/写入时间戳

  14. 14

    如何在Hive表中插入时间戳?

  15. 15

    如何在PostgreSQL中将文本变量转换为时间戳?

  16. 16

    如何在phpMyAdmin中将默认时间戳设置为+1个月

  17. 17

    如何在Jinja2中将时间戳更新为全局变量?

  18. 18

    如何在更新过程中将空值设置为QueryDSL时间戳列?

  19. 19

    如何在Jinja2中将时间戳更新为全局变量?

  20. 20

    如何在HANA中将时间戳四舍五入为小时

  21. 21

    如何在iOS中将特定的NSDate转换为UNIX时间戳

  22. 22

    如何发布网站却阻止访问者?

  23. 23

    如何构建 JavaScript ANTLR 访问者

  24. 24

    用户如何在Text Field iOS中输入时间

  25. 25

    如何在熊猫中沿时间戳分组总和?

  26. 26

    如何在特定日期为数据框中的行移动时间戳

  27. 27

    SQL查询以找到访问者以及日期时间

  28. 28

    访问者模式:基于输入的数字算术

  29. 29

    如何在Kotlin中创建没有访问者的财产?

热门标签

归档