计算列sql中的重复值

问题描述 投票:0回答:5

我想要一个查询来计算列中的重复值,是否有任何查询,或者我想的是

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 oracle
5个回答
5
投票

查看你的sql,它可以简化如下:

SELECT Count(Column) - Count(DISTINCT Column)
FROM   yourTable

2
投票
select column_name, count(*) 
from table_name 
group by column_name 
having count(*) > 1

2
投票

你可以试试这个:

SELECT COUNT(column_name) as count 
   FROM table_name 
  GROUP BY column_name 
 HAVING count > 1 

1
投票

差不多,是的。您可以在单个查询中完成此操作:

SELECT (SELECT COUNT(col) FROM tbl) - (SELECT COUNT(DISTINCT col) FROM tbl);

编辑:NoDisplayName 的好点。这至少在 MySQL 中有效,我不保证跨引擎兼容性(我上次在 Oracle 上工作是十五年前,而在 SQL Server 上从未工作过)


0
投票

如果你想使用sql查询,你可以借助子查询并执行如下操作:

从中选择总和(重复项) (选择column_name,num_duplicates-1作为重复项 (从表名中选择列名,计数(列名)作为重复数 按列名分组 将 count(column_name)>1) 作为 table_alias1) 作为 table_alias2

© www.soinside.com 2019 - 2024. All rights reserved.