0
dollar_amountの値を既存の値で置き換えようとしています。期間= 201605でstatus = 'Open'、期間= 201605でstatus = 'Active'と指定すると、dollar_amountを10に置き換えます。以下のSQLクエリからcase文に1列(status)を2回使用できますか? ?ここでハイブ:1列が2回使用された場合
はサンプルデータです:
create table atable1 (
id int,
status string,
period int,
dollar_amount decimal(18,2));
insert into atable1 values (1234, "Open", "201604", 0);
insert into atable1 values (1234, "Active", "201605", 9.99);
insert into atable1 values (2222, "Open", "201604", 0);
insert into atable1 values (2222, "Active", "201605", 9.99);
生データは次のようになります。
以下id status period dollar_amount
1234 Open 201604 0
1234 Active 201605 10
2222 Open 201604 0
2222 Active 201605 10
:変更後
id status period dollar_amount
1234 Open 201604 0
1234 Active 201605 9.99
2222 Open 201604 0
2222 Active 201605 9.99
、私はデータが見えるようにしたいです私が試したクエリです:
select
id,
status,
period,
case when
(status = 'Open' and period = 201604)
and (status = 'Active' and period = 201605)
then 10
else dollar_amount
end dollar_amount_value
ありがとうございます! status = 'Open'とperiod = 201604の場合、0 の場合はstatus = 'Improving'、期間= 201605、次に10に変更する必要がありました – sharp