如何在postgresql/sql中显示下表中的所有3个url为空

uqjltbpv  于 2023-02-04  发布在  PostgreSQL
关注(0)|答案(1)|浏览(82)

我想显示url为空且typeurl为type1和type2也为空的记录。输出应为productname:石油

ProductName     Url    Type     TypeUrl
Shampoo         null   Type1    null
Shampoo         null   Type2    www.domain.com
Conditioner     null   Type1    null
Conditioner     null   Type2    www.domain.com
Oil             null   Type1    null
Oil             null   Type2    null

我想要的postgresql查询

deikduxw

deikduxw1#

我们可以在这里使用一个简单的聚合:

SELECT ProductName
FROM yourTable
GROUP BY ProductName
HAVING COUNT(Url) = 0 AND
       COUNT(TypeUrl) FILTER (WHERE Type IN ('Type1', 'Type2')) = 0;

对于不支持FILTER的Postgres版本,请使用此版本:

SELECT ProductName
FROM yourTable
GROUP BY ProductName
HAVING COUNT(Url) = 0 AND
       COUNT(CASE WHEN Type IN ('Type1', 'Type2') THEN TypeUrl END) = 0;

相关问题