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

多条件数据库数据查询:特定Type记录筛选需求

解决方案:符合条件的数据查询

咱们先把你的查询需求拆解清楚:要找出那些出现次数大于1的Type,这类Type必须同时满足两个核心条件:

  • 存在至少一行Status1 = 'AAA'的记录
  • 存在另一行同Type的记录,它的日期比上述AAA行的日期晚,且Status2 = 'C'、Status3 = 'D'

方法一:使用EXISTS子查询实现

假设你的表名为your_table,可以用以下SQL语句直接实现需求:

SELECT DISTINCT t.*
FROM your_table t
WHERE 
  -- 条件1:当前Type在表中出现次数大于1
  (SELECT COUNT(*) FROM your_table WHERE Type = t.Type) > 1
  -- 条件2:当前Type存在Status1为AAA的行
  AND EXISTS (
    SELECT 1 FROM your_table 
    WHERE Type = t.Type AND Status1 = 'AAA'
  )
  -- 条件3:当前Type存在日期晚于某条AAA行,且符合Status2=C、Status3=D的行
  AND EXISTS (
    SELECT 1 FROM your_table t_aaa
    JOIN your_table t_cd ON t_aaa.Type = t_cd.Type
    WHERE 
      t_aaa.Type = t.Type
      AND t_aaa.Status1 = 'AAA'
      AND t_cd.Date > t_aaa.Date
      AND t_cd.Status2 = 'C'
      AND t_cd.Status3 = 'D'
  );

方法二:使用窗口函数优化(更高效)

如果你的数据库支持窗口函数(比如MySQL 8+、PostgreSQL、SQL Server等),可以先通过窗口函数提前计算每个Type的关键统计信息,这样查询效率会更高:

WITH type_stats AS (
  SELECT 
    Type,
    COUNT(*) OVER (PARTITION BY Type) AS type_count,
    MAX(CASE WHEN Status1 = 'AAA' THEN 1 ELSE 0 END) OVER (PARTITION BY Type) AS has_aaa,
    MAX(
      CASE 
        WHEN EXISTS (
          SELECT 1 FROM your_table t2 
          WHERE t2.Type = t.Type 
          AND t2.Date > t.Date 
          AND t2.Status2 = 'C' 
          AND t2.Status3 = 'D'
        ) AND Status1 = 'AAA' THEN 1 
        ELSE 0 
      END
    ) OVER (PARTITION BY Type) AS has_later_cd
  FROM your_table t
)
SELECT DISTINCT t.*
FROM your_table t
JOIN type_stats ts ON t.Type = ts.Type
WHERE 
  ts.type_count > 1
  AND ts.has_aaa = 1
  AND ts.has_later_cd = 1;

结果验证(用你提供的示例数据)

你的示例数据如下:

IDTypeDateStatus1Status2Status3
14582018-01-01 15:04:06AAAAB
24712017-12-31 15:04:06AAAAB
34582018-01-15 15:04:06BBCCD
54582018-01-18 15:04:06AAAXD

符合所有条件的Type是458:

  • 它累计出现3次(满足次数>1)
  • 存在Status1=AAA的行(ID1、ID5)
  • 存在日期晚于ID1的行(ID3),且Status2=C、Status3=D

最终查询会返回Type=458的所有记录,如果你只需要特定行,可以调整SELECT的字段内容。

内容的提问来源于stack exchange,提问作者Vector JX

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:32:24