【发布时间】:2017-09-19 11:12:26
【问题描述】:
我目前有一些如下表格的数据。
userid | event_time | event_duration (secs) | first_activity | last_activity
A 2017-01-01 02:20:34 16 E1 E2
A 2017-03-01 11:23:43 12 E2 E6
B 2017-01-01 08:24:32 53 E1 E4
C 2017-01-01 23:19:21 43 E3 E11
我想把它变成表格:
userid | event_time | activity
A 2017-01-01 02:20:34 E1
A 2017-01-01 02:20:50 E2
A 2017-03-01 11:23:43 E2
A 2017-03-01 11:23:55 E6
B 2017-01-01 08:24:32 E1
B 2017-01-01 08:25:25 E4
C 2017-01-01 23:19:21 E3
C 2017-01-01 23:20:04 E11
我可以很容易地做到这一点:
SELECT userid, event_time, first_activity
FROM table
UNION
SELECT userid, event_time + event_duration * interval '1 seconds', last_activity
FROM table
但是,我想要一种避免使用UNIONs 重复查询两次的方法。有没有一种简洁的方法来创建我需要的表单而无需UNIONing 两个查询?
【问题讨论】:
-
如果您使用 Redshift,请勿使用 Postgres 标记问题。 From the Redshift manual: "不要假设 Amazon Redshift 和 PostgreSQL 的共同元素的语义是相同的"
标签: sql join subquery amazon-redshift