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

如何筛选指定列相同其他列存在差异的数据集行?

实现方案

核心逻辑:先按Name和Age两列分组,统计每个分组内Job的唯一值数量,保留唯一值数量大于1的分组下的所有行即可,以下是不同场景的实现代码:

SQL 实现

假设表名为 employee_jobs,可使用如下两种常用写法:

窗口函数写法(兼容MySQL 8.0+/PostgreSQL/Oracle等支持窗口函数的数据库)

WITH job_stat AS (
    SELECT 
        *,
        COUNT(DISTINCT Job) OVER(PARTITION BY Name, Age) AS distinct_job_num
    FROM employee_jobs
)
SELECT Name, Age, Job, Start, End 
FROM job_stat 
WHERE distinct_job_num > 1;

子查询关联写法(兼容低版本数据库)

SELECT * FROM employee_jobs
WHERE (Name, Age) IN (
    SELECT Name, Age
    FROM employee_jobs
    GROUP BY Name, Age
    HAVING COUNT(DISTINCT Job) > 1
);

Python Pandas 实现

如果数据集存储在Pandas DataFrame中,可直接用分组过滤实现:

import pandas as pd

# df 为原始数据集对应的DataFrame
result = df.groupby(['Name', 'Age']).filter(lambda group: group['Job'].nunique() > 1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 19:18:00