我有一张如下所示的表格:
id | bucket_1 | bucket_2 | bucket_3 | bucket_4 |
---|---|---|---|---|
7689 | 1 | 1 | 0 | 1 |
3456 | 1 | 0 | 1 | 1 |
4567 | 0 | 0 | 1 | 1 |
5677 | 1 | 0 | 0 | 0 |
4567 | 1 | 0 | 0 | 0 |
我需要做的是编写 SQK 代码来查看桶 1 到 4,如果这些列中有多个值为 1,则将其标记为 1 或 true,否则将其标记为 0 或 false . 这是我正在尝试制作的表格:
id | bucket_1 | bucket_2 | bucket_3 | bucket_4 | 结果 |
---|---|---|---|---|---|
7689 | 1 | 1 | 0 | 1 | 1 |
3456 | 1 | 0 | 1 | 1 | 1 |
4567 | 0 | 0 | 1 | 1 | 1 |
5677 | 1 | 0 | 0 | 0 | 0 |
4567 | 1 | 0 | 0 | 0 | 0 |
您能帮助我们如何实现这一目标吗?我不确定如何使用 case 子句来完成。
答案 0 :(得分:0)
您可以使用 case
表达式:
select t.*,
(case when bucket_1 + bucket_2 + bucket_3 + bucket_4 > 1
then 1 else 0
end) as result
from t;
答案 1 :(得分:0)
你可以直接这样做:
select t.*,
+(bucket_1 + bucket_2 + bucket_3 + bucket_4 > 1) result
from t