我怎么能只得到ID个相同的数据,而不是Name个相同的数据?

下面是一个例子来解释我的 idea .谢谢

ID     Name     Date          
123    Amy     08/03/2022   
123    Amy     12/03/2022    
456    Billy   08/03/2022    
456    Cat     09/03/2022    
789    Peter   10/03/2022    

预期输出:

ID     Name     Date
456    Billy   08/03/2022    
456    Cat     09/03/2022 

我做得怎么样.

select ID, Name, count(*)
from table
groupby ID, Name
having count(*) > 1

但结果包括我不想要的以下部分.

ID     Name     Date          
123    Amy     08/03/2022   
123    Amy     12/03/2022 

推荐答案

一种方法是使用子查询来识别具有多个名称的ID个.

SELECT *
FROM YourTable
WHERE ID IN (SELECT ID FROM YourTable GROUP BY ID HAVING COUNT(DISTINCT Name) > 1)

Sql相关问答推荐

将重复的值更新为下一个空闲数字

如何计算一个用户S的日常连胜?

我可以在SQL的IN子句中使用比子查询包含的值更少的值吗?

从结果SQL查询中排除空值

在SELECT中将日期格式转换为双周时段

通过对象分离实现原子性

每个学校 Select N个最新的行,但跳过同一学生的重复行

使用左外部联接更正列中第+1行的值时重复

用另一个表中的特定名称替换 SQL 查询中的 ID.但我的两个表都有多个列

将最近的结束日期与开始日期相匹配

特殊条件计算小计

SQL Server - 复杂场景 - 比较状态并填充值到后续行

SQL Server: 将JSON对象数组转换为表格格式

Oracle函数中无法动态迭代创建的SYS_REFCURSOR

在 MS Access VBA 中,如何测量显示查询的时间?

joins 组合多个重复数据删除策略

使用 R 遍历 SQL 查询,每次替换一个变量

如何更改 duckdb R 中的数据约束

并非所有变量都绑定在 PL SQL 函数中

BigQuery - 将 TIMESTAMP 转换为 HH:MM:SS,然后识别 TIME_DIFF