选择某些列相同但其他列不同的行

Selecting rows where some columns are same but others are different

我有一个数据集设置如下:

Name Age Job Start End
Joe 20 Plumber 01/20 08/20
Joe 20 Joiner 08/20 09/21
Kevin 28 Plumber 07/20 08/20
Kevin 28 Plumber 08/20 09/21
Michael 25 Plumber 01/20 11/20
Michael 25 Joiner 11/20 07/21

我正在尝试获取姓名和年龄相同但工作不同的所有行。输出数据集应如下所示:

Name Age Job Start End
Joe 20 Plumber 01/20 08/20
Joe 20 Joiner 08/20 09/21
Michael 25 Plumber 01/20 11/20
Michael 25 Joiner 11/20 07/21

有人能帮帮我吗?

您可以检查是否有重复的(姓名、年龄)对EXISTS但有不同的工作:

SELECT *
FROM t AS t1
WHERE EXISTS (
    SELECT *
    FROM t AS t2
    WHERE t2.name = t1.name
    AND t2.age = t1.age
    AND t2.job <> t1.job
)
SELECT C.*
  FROM YOUR_TABLE AS C
  JOIN YOUR_TABLE AS C2 ON C.Name=C2.Name AND C.Age=C2.Age AND C.Job<>C2.Job