我的数据有 3 组变量(set1_a,b,c,) (set2_x,y), (set3_n)
,如下所示。对于每个组,如果至少有 1 个变量,value>90
那么我算作 1。
然后,我对计数求和。
我下面的代码工作正常。但是,我想将所有内容放在 1 个选择语句中。你能帮忙吗?
Create TABLE have (
id varchar(225),
set1_a varchar(225),
set1_b varchar(225),
set1_c varchar(225),
set2_x varchar(225),
set2_y varchar(225),
set3_n varchar(225)
);
Insert into have (id,set1_a,set1_b,set1_c,set2_x,set2_y,set3_n) values (1,1,3,200,1,1,5);
Insert into have (id,set1_a,set1_b,set1_c,set2_x,set2_y,set3_n) values (2,1,3,200,200,1,5);
Insert into have (id,set1_a,set1_b,set1_c,set2_x,set2_y,set3_n) values (3,1,3,200,200,1,500);
Insert into have (id,set1_a,set1_b,set1_c,set2_x,set2_y,set3_n) values (4,1,3,1,1,1,500);
select * from have;
SELECT id,set1_a,set1_b,set1_c,set2_x,set2_y,set3_n,N1,N2, count1+count2+count3 as total_count FROM
(
select id,set1_a,set1_b,set1_c,set2_x,set2_y,set3_n,
case
when (set1_a >90 or set1_b>90 or set1_c>90) then 1 else 0
end as count1,
case
when (set2_x >90 or set2_y>90) then 1 else 0
end as count2
case
when (set3_n >90) then 1 else 0
end as count3
from have
)
--WHERE N1+N2>=2
;