本周我刚开始使用teradata SQL,如果我没有正确地说出来,那就很抱歉。我最初在R中创建了一个脚本,摆脱了我的表中的重复,但现在我需要将此代码转换为SQL。以下是一些示例数据:
我想删除DELETE列中的任何D,按ID分区,按STATUS,DATE和AMOUNT排序(实际日期和金额在?之前)。我希望STATUS按此顺序排列:P,H,F,U,T。我希望第一行填写STATUS,DATE和AMOUNT(按顺序使用STATUS)。以下是示例输出数据:
我真的陷入了订单问题,我编写的代码根本没有产生任何数据(但没有错误)。
示例代码:
*306.nii
答案 0 :(得分:2)
这是您的描述直接翻译成Teradata SQL,假设?
表示NULL
:
select *
from tab
where "delete" is null
and "date" is not null
and amount is not null
qualify
row_number()
over (partition by id
order by case status
when 'P' then 1
when 'H' then 2
when 'F' then 3
when 'U' then 4
when 'T' then 5
end
,"date"
,amount) = 1