我想要一个查询来计算列中的重复值,是否有任何查询,或者我想的是
total records=SELECT COUNT(column_name) FROM table_name;
distinct records=SELECT COUNT(DISTINCT column_name) FROM table_name;
duplicate count=total records-distinct records;
查看你的sql,它可以简化如下:
SELECT Count(Column) - Count(DISTINCT Column)
FROM yourTable
select column_name, count(*)
from table_name
group by column_name
having count(*) > 1
你可以试试这个:
SELECT COUNT(column_name) as count
FROM table_name
GROUP BY column_name
HAVING count > 1
差不多,是的。您可以在单个查询中完成此操作:
SELECT (SELECT COUNT(col) FROM tbl) - (SELECT COUNT(DISTINCT col) FROM tbl);
编辑:NoDisplayName 的好点。这至少在 MySQL 中有效,我不保证跨引擎兼容性(我上次在 Oracle 上工作是十五年前,而在 SQL Server 上从未工作过)
如果你想使用sql查询,你可以借助子查询并执行如下操作:
从中选择总和(重复项) (选择column_name,num_duplicates-1作为重复项 (从表名中选择列名,计数(列名)作为重复数 按列名分组 将 count(column_name)>1) 作为 table_alias1) 作为 table_alias2