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

如何查询符合特定条件的行:仅返回sync&cb分组下所有value为not available的记录

按sync、cb字段分组筛选全组符合条件记录的实现方案

核心逻辑:仅保留分组内不存在任何value不等于not available的分组,以下是不同场景的实现代码:

SQL场景

仅返回符合条件的分组键(sync、cb值)

用GROUP BY + HAVING实现:

SELECT sync, cb
FROM your_table_name
GROUP BY sync, cb
-- 统计分组内不符合要求的行数,为0则代表全组符合条件
HAVING COUNT(CASE WHEN value != 'not available' THEN 1 END) = 0;

返回符合条件分组的所有原始行

用窗口函数实现:

SELECT sync, cb, value
FROM (
    SELECT 
        *,
        -- 按sync、cb分区统计不符合要求的行数
        SUM(CASE WHEN value != 'not available' THEN 1 ELSE 0 END) OVER (PARTITION BY sync, cb) AS invalid_count
    FROM your_table_name
) t
WHERE invalid_count = 0;

用示例数据测试以上代码,返回结果仅包含sync=Bal、cb=BAL1的相关记录,符合需求。

Python Pandas场景

用groupby.filter实现:

import pandas as pd

# df为你的原始数据框
result = df.groupby(['sync', 'cb']).filter(lambda g: (g['value'] == 'not available').all())

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 22:24:04