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

MySQL查询需求:按条件筛选snom列并排除指定值

数据筛选需求与解决方案

原始数据

pnomocinkasnom
236
341
341
326
353
337
337
453

筛选条件

  • pnom列的值必须为3
  • ocinka列的值不能为3
  • 排除所有ocinka为3的行对应的snom值

预期结果

snom值:1、6、3(顺序不限),排除7

解决方案

1. SQL实现

通过子查询先锁定需排除的snom值,再结合核心筛选条件查询:

SELECT DISTINCT snom
FROM your_table
WHERE pnom = 3
  AND ocinka != 3
  AND snom NOT IN (SELECT snom FROM your_table WHERE ocinka = 3);

2. Pandas实现(Python)

通过两步筛选完成需求:

import pandas as pd

# 构造数据(实际场景可替换为读取数据源)
df = pd.DataFrame({
    'pnom': [2,3,3,3,3,3,3,4],
    'ocinka': [3,4,4,2,5,3,3,5],
    'snom': [6,1,1,6,3,7,7,3]
})

# 提取需排除的snom值集合
excluded_snom = df[df['ocinka'] == 3]['snom'].unique()

# 执行筛选并去重
result = df[(df['pnom'] == 3) & (df['ocinka'] != 3) & (~df['snom'].isin(excluded_snom))]['snom'].unique()

print(result)  # 输出:[1 6 3]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 07:35:37