相关疑难解决方法(0)

在SQL Server中查找重复的行

我有一个组织的SQL Server数据库,并且有许多重复的行.我想运行一个select语句来获取所有这些和dupes的数量,但也返回与每个组织关联的id.

声明如下:

SELECT     orgName, COUNT(*) AS dupes  
FROM         organizations  
GROUP BY orgName  
HAVING      (COUNT(*) > 1)
Run Code Online (Sandbox Code Playgroud)

将返回类似的东西

orgName        | dupes  
ABC Corp       | 7  
Foo Federation | 5  
Widget Company | 2 
Run Code Online (Sandbox Code Playgroud)

但我也想抓住他们的身份证.有没有办法做到这一点?也许就像一个

orgName        | dupeCount | id  
ABC Corp       | 1         | 34  
ABC Corp       | 2         | 5  
...  
Widget Company | 1         | 10  
Widget Company | 2         | 2  
Run Code Online (Sandbox Code Playgroud)

原因是还有一个单独的用户表链接到这些组织,我想统一它们(因此删除欺骗,以便用户链接到同一组织而不是欺骗组织).但我想手动分配,所以我不会搞砸任何东西,但我仍然需要一个声明返回所有欺骗组织的ID,以便我可以浏览用户列表.

sql sql-server duplicates

217
推荐指数
7
解决办法
52万
查看次数

在SQL中,count(列)和count(*)之间有什么区别?

我有以下查询:

select column_name, count(column_name)
from table
group by column_name
having count(column_name) > 1;
Run Code Online (Sandbox Code Playgroud)

会有什么区别,如果我更换了所有调用count(column_name)到count(*)?

这个问题的灵感来自于如何在Oracle中的表中找到重复值?.


为了澄清已接受的答案(也许是我的问题),替换count(column_name)为count(*)将在结果中返回一个额外的行,其中包含a null和null列中的值计数.

sql

199
推荐指数
5
解决办法
4万
查看次数

在列中查找重复条目

我正在编写此查询以查找table1中的重复CTN记录.所以我的想法是,如果CTN_NO出现超过两次或更高,我希望它在我的SELECT*语句输出中显示在顶部.

我尝试了以下子查询逻辑,但我需要拉动

  SELECT *
         table1 
   WHERE S_IND='Y'
     and CTN_NO = (select CTN_NO 
                     from table1 
                    where S_IND='Y' 
                      and count(CTN_NO) < 2);
order by 2
Run Code Online (Sandbox Code Playgroud)

sql oracle subquery

41
推荐指数
1
解决办法
11万
查看次数

标签 统计

sql ×3

duplicates ×1

oracle ×1

sql-server ×1

subquery ×1