按分组行选择空值 SQL 服务器

Selecting nulls by grouped rows SQL Server

我有一个 table 看起来像这样

UniqueID  BeginDate EndDate
045318    12-1-2019 NULL
034557    12-4-2018 NULL
034557    12-4-2019 NULL
054678    12-4-2019 12-05-2019
054678    12-4-2019 NULL

我正在尝试编写一个查询,当有两行或更多行具有相同的 uniqueID 并且在结束日期列中都有空值时,它会选择 uniqueID。基于上面的 table,我希望我的输出看起来像这样:

UniqueID     EndDate
034557        NULL

到目前为止,我的查询将包含上述示例中的唯一 ID 045318。这是我目前所拥有的..

SELECT UniqueID, MAX(EndDate) FROM TABLE GROUP BY UniqueID HAVING MAX(EndDate) IS NULL;

感谢您的帮助。

你快到了。您只需要 HAVING 中的一个附加条件即可过滤至少有 2 条记录的 UniqueID

SELECT UniqueID, MAX(EndDate) 
FROM TABLE 
GROUP BY UniqueID 
HAVING MAX(EndDate) IS NULL AND COUNT(*) > 1;