我在医疗保健领域工作,我经常处理索赔数据。数据通常显示在行级详细信息中。
CLAIM CLAIMLINE
12345 1
12345 2
12345 3
12345 1
12345 2
12345 3参考上面重复的例子,我能写什么最好的逻辑来帮助识别什么时候一个索赔被列出了不止一次?因为有行级别的详细信息,所以不能简单地执行有计数> 'x‘,因为这些行总是导致索赔号重复,从而导致固有的重复。我真的需要一个方法来分组索赔,并做一个基于组的计数。
任何帮助都将不胜感激。谢谢!
发布于 2017-05-26 13:14:49
如果您只想找到CLAIM和CLAIMLINE的唯一组合的计数,那么添加一个group by语句,包括您想要分组的列,然后在非空列上添加一个聚合(比如count ),或者只添加一个给定的值,比如下面的1:
select CLAIM
,CLAIMLINE
,count(1) as RecordCount
from YourTable
group by CLAIM
,CLAIMLINE
order by RecordCount desc发布于 2017-05-26 13:16:12
仅返回具有重复claim的索赔的claimline号
select distinct claim
from claims c
group by claim, claimline
having count(*) > 1rextester演示:http://rextester.com/FCIW49171
返回:
+-------+
| claim |
+-------+
| 12345 |
+-------+根据示例数据:
create table claims (claim int, claimline int)
insert into claims values
(12345,1),(12345,2),(12345,3),(12345,1),(12345,2),(12345,3)
,(6789,1),(6789,2)若要返回具有重复行的索赔的所有行/列:
select *
from claims c
inner join (
select distinct claim
from claims c
group by claim, claimline
having count(*) > 1
) dup
on c.claim = dup.claim发布于 2017-05-26 13:25:57
您可以使用cte和row_number来获得如下所示:
;With DupeClaims as (
Select *, RowN = Row_Number() over (partition by claim, claimline order by claim) from yourClaims )
Select * from DupeClaims where RowN > 1https://stackoverflow.com/questions/44202554
复制相似问题