こんにちわ
重複削除のやり方を教えて頂けますでしょうか。
下記のようなデータがあります。
key FLAG
1 A
1 0
2 0
keyが重複していた場合、FLAGが0になっているものを削除し
アウトプットは、下記のようにしたいです。
key FLAG
1 A
2 0
■お願いしたいこと。
①作成は、Qlik Senseでお願いします。
②レポートではなく、ロードスクリプトで解決して頂きたいです。
よろしくお願いいたします。
スクリプトだけ書きます。
TempTable:
LOAD
Key,
FLAG
FROM [lib・・・];
TempTable2:
LOAD
*,
if(Key=Peek(Key) and FLAG='0','1','0') as 重複フラグ
Resident TempTable
order by Key,FLAG desc;
NoConcatenate
LOAD
Key,
FLAG
Resident TempTable2
Where 重複フラグ='0';
DROP Tables TempTable,TempTable2;
もうちょっと綺麗になるかもしれません。
スクリプトだけ書きます。
TempTable:
LOAD
Key,
FLAG
FROM [lib・・・];
TempTable2:
LOAD
*,
if(Key=Peek(Key) and FLAG='0','1','0') as 重複フラグ
Resident TempTable
order by Key,FLAG desc;
NoConcatenate
LOAD
Key,
FLAG
Resident TempTable2
Where 重複フラグ='0';
DROP Tables TempTable,TempTable2;
もうちょっと綺麗になるかもしれません。
下記でいけるとおもいます。
LOAD
Key,
FLAG
FROM ・・・・・・・・・・・・・
Where Previous(Key)<>Key or FLAG<>0
Order By Key,FLAG desc;
Order byはDBの場合は有効ですが、Fileから取り込む場合は使用できないので
一度取り込んでからResidentを使用する必要があります。
Where句の条件を考えると3回ロードではなく、2回ロードで対応可能ですね。
たしかに!
Hi,
tmp:
LOAD * Inline
[
Key,Flag
1,A
1,0
2,0
]
WHERE not EXISTS (Key)
;
Kawahata様 若松様 Fer様
教えて頂きありがとうございます。
無事できました!
order byはfile読み込みだと出来ないのと降順・昇順というのがあるのを知りませんでした。
いつも勉強になります。