使用COUNT/Group By时需要选择所有列

Joh*_*ith 8 sql database sql-server group-by

好的,我有一张表,其中一列有一个FEW REPEATING记录.

我的任务是选择包含所有属性的REPEATING记录.

CustID FN LN DOB城邦

DOB有一些重复值,我需要从整个表中选择并列出DOB字段中相同的所有记录的所有列.

我试试......

Select  DOB, COUNT(DOB) As 'SameDOB' from Table1

group by DOB

HAVING (COUNT(DOB) > 1)
Run Code Online (Sandbox Code Playgroud)

这只返回两列,一行第一列是多次出现的DOB列,第二列给出了多少列.

我需要找出一种方法来列出所有属性而不仅仅是这两个......

请指导我正确的方向.

Gor*_*off 14

我认为更通用的解决方案是使用windows函数:

select *
from (select *, count(*) over (partition by dob) as NumDOB
      from table
     ) t
where numDOB > 1
Run Code Online (Sandbox Code Playgroud)

这更通用的原因是因为很容易在两列或更多列中更改为重复项.


gdo*_*ica 9

Select * 
FROM  Table1 T
WHERE T.DOB IN( Select   I.DOB
                FROM     Table1 I
                GROUP BY I.DOB
                HAVING   COUNT(I.DOB) > 1)
Run Code Online (Sandbox Code Playgroud)

  • @ChrisGessler.我看了那篇帖子,我不知道这个家伙似乎根本就不是专家.阅读他的博客评论,读者教他'EXIST`.什么??? (2认同)