Postgres:如何在 Having 子句中进行 NULL 友好的 MIN 过滤?

Postgres: How to make NULL friendly MIN filtering in Having clause?

audit_table 可能包含重复的 userId.

我们有以下 SQL 查询

SELECT userId FROM audit_table
GROUP BY userId 
HAVING MIN(updatedDate) > ?;

updatedDate 字段可能为空,如果 audit_table 中所有行的具体 userId 仅包含空值,我看不到这些行,但我想要。 有什么办法可以实现吗?

一种方法是显式比较:

SELECT userId FROM audit_table
GROUP BY userId 
HAVING MIN(updatedDate) > ? OR MIN(updatedDate) IS NULL;

另一种方法是统计小于?NULLupdatedDates:

HAVING COUNT(*) FILTER (WHERE updatedDate <= ?) = 0;