我有一个具有以下结构的表:
Sr.No | Timestamp | Type
1 A x
1 B y
1 C v
1 D w
2 E j
2 F l
3 G o
我想计算所有Sr.No的时间差,以及时差小于12小时的地方,我想连接" Type"柱。 因此,如果A-B = 11小时且E-F = 10小时,则输出应为:
Sr.No | Type
1 x + y
1 v
1 w
2 j + l
3 o
如何在Teradata SQL中执行此操作?
答案 0 :(得分:0)
我不知道tera数据但在我看来你主要对sql感兴趣。在下面的sql中,我只是简单地减去时间戳值来查找小时差异。您需要根据tera数据进行转换。请在下面找到示例sql:
select t1.sno, t1.type | '+' |t2.type
from tbl t1
inner join tbl t2 on t1.sno = t2.sno and t1.type <> t2.type
where t1.timestamp -t2.timestamp < 12
union
select t3.sno,t3.type
from tbl t3
left join
(
select t5.sno, t5.type,t6.type
from tbl t5
inner join tbl t6 on t5.sno = t6.sno and t5.type <> t6.type
where t5.timestamp -t6.timestamp < 12
) t4 on t3.sno = t4.sno and (t3.type=t4.type1 or t3.type=t4.type2)
where t4.sno is null