按分组行选择空值 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;
我有一个 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;