mysql - 从分组的 Column2 中选择在 Column3 中没有值的结果

标签 mysql sql

我对 SQL 非常业余,所以请耐心等待:)

我正在尝试找到一个好的查询来查找第 2 列中的一组结果的第 3 列为空值的所有结果。

例如,这是数据

Column1      Column2    Column3

Product1     GroupA     Data
Product2     GroupA     
Product3     GroupA
Product4     GroupB
Product5     GroupB
Product6     GroupC     Data

因此,我在结果中查找的是 Product4 和 Product5,因为它们是 GroupB 的一部分,并且没有 Column3 的结果

最终的想法是,每个GroupX产品将在Column3中至少有一个条目。

查找这些结果的适当查询是什么?

感谢您花时间回答我的简单问题:)

问候!

最佳答案

如果您想要完整的行,则 not exists似乎是你想要的:

select t.*
from t
where not exists (select 1
                  from t t2
                  where t2.column2 = t.column2 and
                        t2.column3 is not null
                 );

注意:这假设空白为 NULL 。您可能希望最后一个条件为 t2.column3 <> '' .

如果您只想每列2值一行,您可以使用聚合:

select t.column2, group_concat(t.column1) as column1s
from t
group by t.column2
having min(t.column2) is null;

关于mysql - 从分组的 Column2 中选择在 Column3 中没有值的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41805770/

相关文章:

Mysql 5.7 存储过程报错

mysql - SQL替代FROM中的子查询

MySQL 错误 1064 - 错误在哪里?

mysql - 过去 7 天的返回计数,已填写缺失日期

php - SQL从具有2个条件的2个表中选择

php - MySQL中如何获取线性函数行?

使用带联合的派生表的 MySQL 列排序问题

mysql - GROUP BY 子句但在列中具有连续(线性)值

mysql - 创建表后在mysql中增加值

ios - 如何在我的 iOS 应用程序的 sqlite 中使 sql 查询不区分大小写