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

如何查询数据表中STATE字段无0值的对应AID记录

原始数据表

AIDBIDSTATE
111
123
133
210
223
233
313
320
333

需求说明

筛选所有关联记录的STATE字段均不存在0值的AID,示例场景下符合条件的AID为1,以下是不同场景的实现方案:


1. SQL 实现

方案1:分组聚合判断(性能更优,推荐)

对AID分组后统计分组内STATE=0的记录数,筛选计数为0的AID即可:

SELECT AID
FROM 表名
GROUP BY AID
HAVING COUNT(CASE WHEN STATE = 0 THEN 1 END) = 0;

适配MySQL的简化写法:

SELECT AID
FROM 表名
GROUP BY AID
HAVING SUM(STATE = 0) = 0;

方案2:反向排除

先查询所有存在STATE=0的AID,再取不在该集合内的AID:

SELECT DISTINCT AID
FROM 表名
WHERE AID NOT IN (
    SELECT DISTINCT AID FROM 表名 WHERE STATE = 0
);

2. Python Pandas 实现

假设数据已加载为DataFrame对象df:

# 方法1:分组过滤
valid_aids = df.groupby('AID').filter(lambda x: (x['STATE'] != 0).all())['AID'].unique()

# 方法2:反向排除
invalid_aids = df[df['STATE'] == 0]['AID'].unique()
valid_aids = df[~df['AID'].isin(invalid_aids)]['AID'].unique()

3. Excel 实现

  1. 新增辅助列D,D2单元格输入公式=IF(C2=0,A2,"")(假设AID在A列,STATE在C列),下拉填充全表
  2. 提取A列所有唯一AID到单独列
  3. 对每个唯一AID,用公式=COUNTIF(D:D, 目标AID单元格)=0判断,返回TRUE即为符合条件的AID

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 10:48:02