sql - PostgreSQL 查询无匹配条件

标签 sql postgresql

我有一个表(大约有1亿行)如下

identifier       bigint
active           boolean
extraInformation character varying(100)

数据可以并且将会有几行,其中每个标识符的 active 为 false,但对于每个标识符,必须始终有一行 active 为 true。

存在一个错误,导致某些标识符的所有事件标志都设置为 false。

因此我需要如下查询:

显示所有事件标志均设置为 false 的所有标识符

最佳答案

如果您使用的是 9.4,则可以使用此:

select identifier 
from the_table
group by identifier
having count(*) = count(*) filter (where not active);

对于旧版本:

select identifier 
from the_table
group by identifier
having count(*) = count(case when not active then 1 end);

SQLFiddle:http://sqlfiddle.com/#!15/7423e/2

关于sql - PostgreSQL 查询无匹配条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31347953/

相关文章:

MySQL查询匹配两个字段并且有另一个共同字段

mysql - 模拟 mysql 内置函数的 PL/SQL 库

PHP-Mysql WHERE 为空并返回结果

postgresql - Postgres.app 显示 "Running on Port 5432"但 psql 命令失败

django - 关系不存在,在 PostgreSQL、Django 中

sql - Row_Number Sybase SQL Anywhere 在多个条件下更改

php - 我的查询有问题吗?

postgresql - PostgreSQL 时间戳转换中的奇怪时区

sql - 如何将 Unix 纪元转换为时间戳

postgresql - FATAL : pg_hba. conf 拒绝主机 "127.0.0.1"的连接,用户 "postgres",数据库 "prod",SSL 关闭