资格和排名:过滤Teradata中文本和时间戳的数据

时间:2015-10-05 18:16:19

标签: filter teradata rank

我在Teradata中有一个数据集 -

ID NAME TMS
123 AAA 12:00
123 BBB 12:01
123 CCC 12:04
123 BBB 12:06
123 DDD 12:08
123 EEE 12:55
222 AAA 12:33
222 BBB 12:10

查询应首先在“名称”列中找到唯一ID的最后一个“BBB”,然后显示此后的每一行,即BBB时间戳的30分钟间隔。因此,我的显示器看起来像 -

ID NAME TMS
123 BBB 12:06
123 DDD 12:08
222 BBB 12:10
我猜测Qualify和Rank可以做到这一点,但不确定。任何人吗?

1 个答案:

答案 0 :(得分:1)

您不需要SELECT * FROM tab QUALIFY TMS BETWEEN MAX(CASE WHEN NAME = 'BBB' THEN TMS end) OVER (PARTITION BY ID) AND MAX(CASE WHEN NAME = 'BBB' THEN TMS end) OVER (PARTITION BY ID) + INTERVAL '30' MINUTE

{{1}}