是否有可能“嵌套” Teradata的合格声明?在Teradata嵌套合格声明
我有一些数据,看起来像这样:
event_id = 1:
user_id action_timestamp
971,134,265 17mar2010 20:16:56
739,071,748 17mar2010 22:19:59
919,853,934 18mar2010 15:47:49
919,853,934 18mar2010 15:55:21
919,853,934 18mar2010 16:01:20
919,853,934 18mar2010 16:01:48
919,853,934 18mar2010 16:04:52
472,665,603 20mar2010 18:23:58
472,665,603 20mar2010 18:24:07
472,665,603 20mar2010 18:24:26
....
event_id = 2:
971,134,265 17mar2069 20:16:56
739,071,748 17mar2069 22:19:59
919,853,934 18mar2069 15:47:49
919,853,934 18mar2069 15:55:21
919,853,934 18mar2069 16:01:20
919,853,934 18mar2069 16:01:48
919,853,934 18mar2069 16:04:52
472,665,603 20mar2069 18:23:58
472,665,603 20mar2069 18:24:07
472,665,603 20mar2069 18:24:26
对于用户919853934,我想抓住“18mar2010 16时04分52秒”行动(最后一个活动的第一集群中)。
我想这一点,不抢权日期:
SELECT action_timestamp
,user_id
,event_id
FROM table
WHERE ...
QUALIFY (
MAX(action_timestampt) OVER (PARTITION BY user_id, event_id) = action_timestamp
AND MIN(action_timestamp) OVER (PARTITION BY user_id) = action_timestamp
)
这实际上是有道理的,因为MAX和MIN适用于整个数据,而不是按顺序。
我还尝试了2个单独的限定语句,以使MIN()部分适用于MAX()部分创建的数据的子集,但是那些错误。
这将运行,但不会抢权行。 –