SQL объединенные таблицы вызывают дублирование - PullRequest
0 голосов
/ 09 июля 2020

Таким образом, таблица A представляет собой общую таблицу policy_id информации, а таблица b - policy_id с приложенными утверждениями. Не все идентификаторы в A существуют в B, но я хочу объединить две таблицы и сумму (общие требования).

Проблема в том, что сумма намного выше, чем фактическая сумма в самой таблице.

Вот то, что я пробовал до сих пор:

select a.policy_id, coalesce(sum(b.claim_amt), 0)
from database.table1 as a
left join database2.table2 as b on a.policy_id = b.policy_id
where product_code = 'CI'
group by a.policy_id

Идентификаторы, которых нет в b, отлично отображаются с 0 рядом с ними, это те, которые работают существуют, где кажется, что заявки_amt сильно дублируются в сумме.

1 Ответ

0 голосов
/ 09 июля 2020

Я подозреваю, что ваши policy_id в table1 не уникальны, и это приводит к удвоению, утроению и т.д. c. суммы. Чтобы обойти это, вы можете объединить суммы из table2 в CTE.

WITH CTE AS (
SELECT
  policy_id
  coalesce(sum(claim_amt), 0) as sum_amt
FROM database2.table2 
group by policy_id
)
select a.policy_id, b.sum_amt
from database.table1 as a
left join CTE as b on a.policy_id = b.policy_id
where product_code = 'CI'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...