DISTINCT和COUNT(*)=1不适用于SQL

DISTINCT和COUNT(*)=1不适用于SQL,sql,count,duplicates,distinct,Sql,Count,Duplicates,Distinct,我需要显示在任何情况下都是唯一的ID和名称,有时是不同的。在我的代码中,我只想显示唯一的名称 我尝试使用distinct和count*=1,但没有解决我的问题 SELECT DISTINCT id, name FROM person GROUP BY id, name HAVING count(name) = 1; 结果仍然会多次显示名称如果您的DBMS支持,您可以使用窗口函数: 选择id、名称 从…起 选择id、名称、计数*按名称超额分配作为NameCount-获取每个名称的计数 从个人 s

我需要显示在任何情况下都是唯一的ID和名称,有时是不同的。在我的代码中,我只想显示唯一的名称

我尝试使用distinct和count*=1,但没有解决我的问题

SELECT DISTINCT id, name
FROM person
GROUP BY id, name
HAVING count(name) = 1;

结果仍然会多次显示名称

如果您的DBMS支持,您可以使用窗口函数:

选择id、名称 从…起 选择id、名称、计数*按名称超额分配作为NameCount-获取每个名称的计数 从个人 src 其中NameCount=1 如果没有,您可以执行以下操作:

选择id、名称 从个人 名字在哪里 选择名称 从个人 按名称分组 计数*=1-仅获取出现一次的名称
如果DBMS支持,则可以使用窗口函数:

选择id、名称 从…起 选择id、名称、计数*按名称超额分配作为NameCount-获取每个名称的计数 从个人 src 其中NameCount=1 如果没有,您可以执行以下操作:

选择id、名称 从个人 名字在哪里 选择名称 从个人 按名称分组 计数*=1-仅获取出现一次的名称
“唯一性”是指只出现一次的名称。这在SQL中不是distinct的意思;distinct的用途是为了计数或结果集中删除重复项

如果是:

SELECT MAX(id), name
FROM person
GROUP BY name
HAVING COUNT(*) = 1;

“唯一性”是指只出现一次的名称。这在SQL中不是distinct的意思;distinct的用途是为了计数或结果集中删除重复项

如果是:

SELECT MAX(id), name
FROM person
GROUP BY name
HAVING COUNT(*) = 1;

您使用的是什么数据库管理系统?MySql,Postgres?你大错特错了。您使用它的方式,它适用于整行,而不仅仅是id。您使用的是什么DBMS?MySql,Postgres?你大错特错了。按照您使用它的方式,它适用于整行,而不仅仅是id。它不应该按id分区吗?为什么?您希望按名称对它们进行分组,并计算每个组中的行数。不应该按id进行分区吗?为什么?您希望按名称对它们进行分组,并计算每个组中的行数。