我有什么
id test_1 test_2 test_3 Indicator_column
1 651 40 0.4 {test_1,test_2,test_3}
1 625 80 0.6 {test_1,test_2,test_3}
1 510 60 0.78 {test_1,test_2,test_3}
1 710 90 0.4 {test_1,test_2,test_3}
1 550 Null 0.2 {test_1,test_2,test_3}
我需要什么:
我在表格和excel中都有这些条件
1)如果测试1的值介于650-800之间,则1否则为0
2)如果测试2的值大于80,则返回1,否则返回0
3)如果测试3的值大于0.5,则返回1,否则返回0
id test_1 test_2 test_3 Indicator_column exclude_flag
1 651 40 0.4 {test_1,test_2,test_3} {1,0,0}
1 625 80 0.6 {test_1,test_2,test_3} {0,0,1}
1 510 60 0.78 {test_1,test_2,test_3} {0,0,1}
1 710 90 0.4 {test_1,test_2,test_3} {1,1,0}
1 550 Null 0.2 {test_1,test_2,test_3} {0,0,0}
答案 0 :(得分:3)
您可以使用基于ARRAY[]
的元素(如下所示)构造一个CASE
:
select
id, test_1, test_2, test_3, indicator_column,
ARRAY[
case when test_1 between 650 and 800 then 1 else 0 end,
case when test_2 > 80 then 1 else 0 end,
case when test_3 > 0.5 then 1 else 0 end,
] as exclude_flag
from t