我有一个系统,它同时基于唯一键和主键在表中创建记录。每次访问都会分配给客户端的唯一键,并且应该为每次访问创建一个主键。但是,在某些情况下,系统会为同一访问创建多个主键。我该如何找到发生这种情况的客户呢?
以下是应该重新创建该问题的数据示例。
RecordNum ClientNum VisitDate
---------------------------------
12345 B1000 8/15/2015
12345 B1001 8/20/2015
12345 B1002 8/20/2015
13456 C1000 9/23/2014
13456 C1001 9/24/2015
13456 C1002 10/2/2015
13456 C1003 10/2/2015
13456 C1004 10/2/2015
15165 D1000 11/1/2015
15165 D1001 11/2/2015
15165 D1002 11/3/2015
15165 D1003 11/4/2015
15165 D1004 11/5/2015
15165 D1005 11/6/2015显然,我也可以使用一些关于如何格式化数据集的建议,我提前道歉。
发布于 2015-10-21 23:17:41
我猜您希望基于ClientNum和VisitDate的RecordNum是唯一的。您可以使用以下代码查找异常情况:
select recordnum
from t
group by recordnum
having count(distinct clientnum) > 0 or count(distinct visitdate < 0);发布于 2015-10-21 23:15:24
SELECT DISTINCT ClientNum, VisitDate
FROM YourTable
GROUP BY (ClientNum + CAST(VisitDate as varchar(20)))
HAVING COUNT (ClientNum + CAST(VisitDate as varchar(20))) > 1https://stackoverflow.com/questions/33262899
复制相似问题