我需要找到表中没有历史记录的数据,在下面给出的输入数据 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
您也可以这样做,这将返回一个结果集,其中排除在原始表中具有多个条目的记录:
select *
from data_set s
where not exists (
select 1
from data_set
where id = s.id
having count(1) > 1
)