繁体   English   中英

SQL 中标志的子分组

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM