根据事件时间戳组合行
Posted
技术标签:
【中文标题】根据事件时间戳组合行【英文标题】:Combine Rows According To Event Timestamp 【发布时间】:2021-08-06 15:21:04 【问题描述】:我试图围绕什么是最好的 postgresql 查询来将下表合并为一个包含 user_id 和 tx_id 的时间戳记录行,而不是显示为 2 行?
如果有助于清晰,user_id 和 tx_id 的数据类型是字符串。
当前表:
timestamp user_id tx_id
4/8/2021 9:21 fa6f6229906
4/8/2021 9:21 2
预期结果:
timestamp user_id tx_id
4/8/2021 9:21 fa6f6229906 2
【问题讨论】:
Postgres 的红移?这是两种截然不同的数据库产品。 【参考方案1】:你可以试试 max()。
select timestamp
, max(user_id) user_id
, max(tx_id) tx_id
from some_table
group by timestamp;
注意:您应该避免创建列名时间戳。 Timestamp 是一个准保留字 Postgres 和一个 SQL 保留字和一个数据类型。使用它作为列名是非常糟糕的做法。
【讨论】:
@Belayar 试过这个,得到的查询数据是一样的。仅当字符串数据仅包含数字时,我才使用 SUM 取得了一些初步成功。如果字符串数据包含我们在 user_id 列中的字母数字,它将不起作用。【参考方案2】:我发现这篇文章中的内部连接解决方案非常适合我们的需要。
https://***.com/a/48846014/16081058
【讨论】:
以上是关于根据事件时间戳组合行的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 python 在 HIVE 中创建 UDF 进行时间戳转换