计算子查询返回的值在表中的时间?PSQL

计算子查询返回的值在表中的时间?PSQL,sql,postgresql,Sql,Postgresql,我有一张这样的桌子 name value john success bob success alex NULL john success . . . 我运行这个查询来获取所有从未设置为NULL的名称 SELECT name FROM table WHERE value is NOT NULL EXCEPT SELECT name FROM table WHERE value is null 这将显示所有从未为空的名称。现在,我想在结果表中显示这些名称在我的表中出现的次数。所以对约翰来说应该

我有一张这样的桌子

name value
john success
bob  success
alex NULL
john success
.
.
.
我运行这个查询来获取所有从未设置为NULL的名称

SELECT name FROM table
WHERE value is NOT NULL
EXCEPT
SELECT name FROM table
WHERE value is null
这将显示所有从未为空的名称。现在,我想在结果表中显示这些名称在我的表中出现的次数。所以对约翰来说应该是第二次。我尝试使用上面的查询作为子查询从()进行计数(*),但它只计算名称在结果表中的出现次数,而不是原始表中的出现次数。

Hmmm

select name, count(*)
from t
group by name
having count(*) filter (where value is null) = 0;