首页 > 解决方案 > 通过比较一组列值创建一个新列

问题描述

如何按表中的“product_id”对一组行进行分组,并通过比较组内的一组列值来创建一个新列?

例如,

product id   part_id  availability
1            1        true
1            2        false
1            3        true
2            1        true
2            4        true
2            8        true

通过比较“可用性”,我想创建一个“可行性”列。如果缺少单个部分,那将是不可行的。

product_id  feasibility
1           false
2           true

我使用 GROUP BY 子句按 product_id 对它们进行排序,但我无法弄清楚第二部分。

标签: mysql

解决方案


--insert into test(product_id, availability) values (1,true),(1,false),(2,true),(2,true);

select distinct product_id 
from test
where product_id not in (
    select product_id
    from test
    group by product_id, availability
    having availability=false
)

推荐阅读