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)
这更通用的原因是因为很容易在两列或更多列中更改为重复项.
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)