【发布时间】:2021-05-19 17:18:31
【问题描述】:
所以我有如下数据:
USER TIMESTAMP DATA
0001 2021-05-18 20:40:06.251 alpha
0002 2021-05-18 22:40:06.251 beta
0002 2021-05-18 21:40:06.251 gamma
0003 2021-05-18 19:40:06.251 delta
0004 2021-05-18 01:40:06.251 epsilon
0003 2021-05-18 20:40:06.251 zeta
我想创建一个包含所有 DISTINCT USER 名称的列表,以及它们关联的 FIRST TIMESTAMP 数据。
结果应该是这样的:
USER TIMESTAMP DATA
0001 2021-05-18 20:40:06.251 alpha
0002 2021-05-18 21:40:06.251 gamma
0003 2021-05-18 19:40:06.251 delta
0004 2021-05-18 01:40:06.251 epsilon
现在这个问题可以通过以下方式解决:
SELECT *
FROM df a
WHERE a.TIMESTAMP IN (
SELECT min(TIMESTAMP)
FROM df AS b
WHERE a.USER = b.USER
)
但是,这对我的服务器来说计算量很大,所以我需要一种不同的方法。我一直在尝试在用户和时间戳上加入 df,但我还没有得到它,有更快的方法的想法吗?顺便说一句,我在 Snowflake 中这样做......
【问题讨论】:
-
它实际上是标准 SQL:ANSI ,请忽略 MySQL @Akina 的任何提及
标签: sql timestamp distinct snowflake-cloud-data-platform ansi