首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编写查询以识别差异

编写查询以识别差异
EN

Stack Overflow用户
提问于 2011-10-06 03:15:18
回答 3查看 145关注 0票数 0

我有一张表,上面有学生证和学生姓名。在为学生分配唯一的学生Id时出现了问题,因此我想查找重复项

以下是示例表:

代码语言:javascript
复制
Student ID  Student Name
   1                 Jack
   1                 John
   1                 Bill
   2                 Amanda
   2                 Molly
   3                 Ron
   4                 Matt
   5                 James
   6                 Kathy
   6                 Will

这里我想要第三列"Duplicate_Count“来显示重复记录的计数。例如"Duplicate_Count“将为学生ID =1显示"3”,依此类推。我该怎么做呢?

提前感谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-10-06 03:18:21

代码语言:javascript
复制
  Select StudentId, Count(*) DupCount
  From Table
  Group By StudentId
  Having Count(*) > 1
  Order By Count(*) desc, 
票数 2
EN

Stack Overflow用户

发布于 2011-10-06 03:22:57

代码语言:javascript
复制
Select
  aa.StudentId, aa.StudentName, bb.DupCount
from
  Table as aa
join
(
  Select StudentId, Count(*) as DupCount from Table group by StudentId
) as bb
on aa.StudentId = bb.StudentId

虚拟表给出了每个StudentId的计数,它被连接回原始表,将计数添加到每个学生记录中。

如果要向表中添加一列以保存dupcount,则可以在update语句中使用此查询来更新表中的该列

票数 1
EN

Stack Overflow用户

发布于 2011-10-06 03:23:56

这应该是可行的:

代码语言:javascript
复制
update mytable
set duplicate_count = (select count(*) from mytable t where t.id = mytable.id)

更新:

正如@HansUp所提到的,添加一个带有重复计数的新列可能没有意义,但这实际上取决于OP最初考虑使用它的用途。我把答案留下来,以防对别人有帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7666439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档