医疗索赔数据的重复逻辑

时间:2017-05-26 13:12:58

标签: sql-server

我在医疗领域工作,我倾向于经常处理索赔数据。数据通常以行级详细信息显示。

CLAIM CLAIMLINE
12345 1
12345 2
12345 3
12345 1
12345 2
12345 3

参考上面的重复示例,我可以编写哪些最佳逻辑来帮助识别索赔何时被多次列出?因为有行级详细信息,所以您不能简单地执行HAVING COUNT> ' X'因为这些行总是导致索赔号重复导致固有的重复。我真的需要一种方法来分组索赔并根据小组进行计数。

非常感谢任何帮助。谢谢!

4 个答案:

答案 0 :(得分:1)

如果您只想查找sess = tf.InteractiveSession() CLAIM的唯一组合的计数,请添加CLAIMLINE语句,其中包括您要分组的列,然后添加一个聚合,例如group by位于不可为空的列上,或者只是一个给定的值,例如下面的count

1

答案 1 :(得分:0)

仅返回重复claim的声明的claimline号码:

select distinct claim
from claims c
group by claim, claimline
having count(*) > 1

rextester演示: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

答案 2 :(得分:0)

您可以使用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 > 1

答案 3 :(得分:0)

我也在处理医疗数据,我们遇到了很多。假设您记录了创建记录的日期,我们将选择第一个或最后一个记录。我更喜欢使用带有ROW_NUMBER函数的CTE。下面的查询将获得最新的重复记录,以获得第一个删除ORDER BY子句上的DESC选项: enter image description here