[英]Teradata CASE and HAVING COUNT
我有一個桌子Handset
。 有一些重復的imei,我必須只選擇一個imei,每個都有這些要求:
IMEI MSISDN REVENUE DATA_CAPABLE
35622200000001 4282336700001 1000 Y
35622200000001 4282336700002 2000 N
35622200000002 4282336700003 3000 Y
35622200000003 4282336700004 4000 Y
35622200000004 4282336700005 5000 Y
35622200000005 4282336700006 6000 Y
35622200000005 4282336700007 7000 Y
35622200000006 4282336700008 8000 Y
35622200000007 4282336700009 9000 N
35622200000007 4282336700010 1100 N
對於這種情況,我很困惑將CASE WHEN and HAVING COUNT(*)>1
組合起來。 大師的任何幫助真的很感激
這是ROW_NUMBER的情況。
假設data_capable
的選項是Y
和N
:
select *
from tab
qualify
row_number()
over (partition by imei -- for each imei
order by data_capable desc -- 'Y' first
,revenue desc -- max(revenue) first
) = 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.