我需要找到在表中没有历史的数据,在下面给出的输入数据ID 37798411和74368539有历史,我需要用SQL查询过滤掉。我使用了下面的SQL,但没有得到正确的结果集
SELECT
*
FROM
data_set
WHERE
id IN (
SELECT
id
FROM
data_set
GROUP BY
id
HAVING
count(id) = 1)
INPUT
ID Start_date End_date
---------------------------------------------------------
37798411 2023-09-21 00:00:00.000
37798411 2023-04-27 00:00:00.000 2023-09-20 00:00:00.000
37798411 2022-07-21 00:00:00.000 2023-04-26 00:00:00.000
74368539 2023-09-27 00:00:00.000
74368539 2023-03-30 00:00:00.000 2023-09-26 00:00:00.000
83851566 2023-09-21 00:00:00.000
83849576 2023-09-21 00:00:00.000
84042557 2023-09-21 00:00:00.000
output
ID Start_date End_date
------------------------------------------------------------
83851566 2023-09-21 00:00:00.000
83849576 2023-09-21 00:00:00.000
84042557 2023-09-21 00:00:00.000
2条答案
按热度按时间7jmck4yq1#
你也可以这样做,这将返回一个结果集,* 排除 * 在原始表中有多个条目的记录:
2lpgd9682#
如果支持,可以使用窗口函数
count()
:Demo here