You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

编写SQL查询获取所有关联记录EndDate非空且早于2024/1/1的ID

筛选所有子记录EndDate非空且早于2024年1月1日的ID

需求明确:需获取所有关联记录的EndDate均不为空,且全部早于2024-01-01的ID。根据给定数据集,ID=1符合条件(所有EndDate非空且早于指定日期),ID=2因存在一条EndDate为NULL的记录被排除。

以下是两种可行的SQL查询方案:

方案1:GROUP BY + HAVING 统计不符合条件的记录数

SELECT ID
FROM your_table_name
GROUP BY ID
HAVING COUNT(CASE WHEN EndDate IS NULL OR EndDate >= '2024-01-01' THEN 1 END) = 0;

逻辑说明:按ID分组后,统计每个ID下存在EndDate为空或不早于2024-01-01的记录数量。当该数量为0时,说明该ID的所有记录都满足要求。

方案2:NOT EXISTS 排除存在不符合条件记录的ID

SELECT DISTINCT t1.ID
FROM your_table_name t1
WHERE NOT EXISTS (
    SELECT 1
    FROM your_table_name t2
    WHERE t2.ID = t1.ID
    AND (t2.EndDate IS NULL OR t2.EndDate >= '2024-01-01')
);

逻辑说明:查询不存在任何一条EndDate为空或不早于2024-01-01的记录的ID,这类ID即为符合要求的结果。

两种方案针对给定数据集执行后,均会返回唯一结果 ID=1。

内容的提问来源于stack exchange,提问作者Vandana Shah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 02:43:23