[英]sub grouping on flags in SQL
我想根据我拥有的四个标志对我的 PK1 和 PK2 字段进行分组。 如果我有任何标记为空白,那么该 PK1 的结果应该是 Yes。 如果该特定 PK1 的所有 PK2 中的所有四个标志都是 X,那么它应该返回 no。
PK1 PK2 Flag1 Flag2 Flag3 Flag4
100 10 X
100 20 X
100 30
200 40 X X X X
200 50 X X X X
300 A10 X
300 A20 X
预期的输出是:
100 Yes
200 No ( as all flag values for each PK2 is X)
300 Yes
任何指针我应该如何在 SQL 问候中解决这个问题,
你可以试试下面的——
select pk1, case when max(flag1) is not null and max(flag2) is not null and max(flag3) is not null and max(flag4) is not null then 'No' else 'Yes' end as flagval
from tablename
group by pk1
SELECT pk1, CASE SUM(flag1='' + flag2='' + flag3='' + flag4='')
WHEN 0
THEN 'No'
ELSE 'Yes'
END
FROM table
GROUP BY pk1
该查询假定 none 标志值为 NULL。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.