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

如何修正SQL查询以按指定条件筛选目标Job记录

修正后的SQL查询方案

原查询存在的问题

  • 错误引用了不存在的字段JobExpireDate,Jobs表中实际字段为JobPostedDate;
  • 未正确实现“拥有多个JobLocationType且所有关联Review超3年”的判断逻辑;
  • 两个分支的UNION冗余,第二个分支无需关联JobLocationType表。

修正后的查询语句

WITH JobStats AS (
    SELECT 
        j.JobId,
        j.JobTrackNumber,
        j.JobPostedDate,
        COUNT(jlt.LocationNumber) AS LocationCount,
        MAX(r.ReviewDate) AS LatestReviewDate
    FROM Jobs j
    LEFT JOIN JobLocationType jlt ON j.JobId = jlt.JobId
    LEFT JOIN Review r ON jlt.LocationNumber = r.ReviewLocationType
    GROUP BY j.JobId, j.JobTrackNumber, j.JobPostedDate
)
SELECT JobId, JobTrackNumber
FROM JobStats
WHERE 
    NOT (JobPostedDate >= '2021-01-01' AND JobPostedDate < '2023-01-01')
    AND (
        (LocationCount >= 2 AND (LatestReviewDate IS NULL OR LatestReviewDate < DATEADD(YEAR, -3, GETDATE())))
        OR JobPostedDate < DATEADD(YEAR, -5, GETDATE())
    );

逻辑说明

  1. CTE统计核心指标:通过JobStats计算每个Job的关联地点数量、最新Review日期,为后续筛选提供基础数据;
  2. 基础筛选:排除2021-01-01至2023-01-01期间发布的Job;
  3. 双条件判断:
    • 多地点Job:判断所有关联Review(若存在)的日期均超过3年(无Review时也满足该子条件);
    • 发布超5年的Job:直接通过发布日期判断,无需考虑地点和Review情况。

内容的提问来源于stack exchange,提问作者I Love Stackoverflow

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 22:13:10