我是SQL新手,一直在尽我最大的努力在我的查询中创建一个派生表,并加入原始表。我的表名为Claims,表中有许多列,但是我只需要提取重复的行,只有某些列才是重复标识符。因此,只提取计数查询中的某些数据。我现在的问题是创建一个派生表,以便提取副本,但将所有原始表保留在索赔表中。
当前查询:
SELECT COUNT(*)AS DUPLICATES_COUNT,
MbrNo,
DepNo,
ServiceDt,
PracticeNo,
TarifAmt,
SchemeCd,
TariffCd,
PayAmt,
Nappi_Cd,
ChargeAmt,
RuleCd1
FROM Claims
GROUP BY
MbrNo,
DepNo,
ServiceDt,
PracticeNo,
TarifAmt,
SchemeCd,
TariffCd,
PayAmt,
Nappi_Cd,
ChargeAmt,
RuleCd1
HAVING COUNT(*) > 1这为我提供了计数而不是数据,派生表将为我提供数据,但是在上面提到的查询中没有使用但必须包含在输出中的Claims表中有更多列。
请帮助我创建派生表的查询好吗?
我真的希望我在这里说得有道理,因为这个术语对我来说都是很新的。
谢谢Chantelle
发布于 2015-03-06 07:06:23
试试这个:
SELECT * FROM
(
SELECT *,
COUNT(*) OVER(PARTITION BY MbrNo,
DepNo,
ServiceDt,
PracticeNo,
TarifAmt,
SchemeCd,
TariffCd,
PayAmt,
Nappi_Cd,
ChargeAmt,
RuleCd1) P
FROM Claims
) o WHERE P > 1P将包含所有行的重复计数。然后通过P > 1过滤结果。这是窗口函数,您可以将原始数据和聚合数据混合在一起。
https://stackoverflow.com/questions/28893720
复制相似问题