oracle sql вопрос по агрегации данных транзакций - PullRequest
0 голосов
/ 09 мая 2019

Я пытаюсь добавить все в данные (доллар_значение, КОЛИЧЕСТВО), но не добавляю итоговую сумму доставки, поскольку в каждом номере транзакции есть несколько позиций, но клиент оплачивал доставку только один раз. Я использую следующие данные:

https://dbfiddle.uk/?rdbms=oracle_11.2&fiddle=01693db7ce05b062804cedeb3b3a7e73

ниже - это запрос, который я использую для моей фактической базы данных:

select QUARTER_DATE ,COUNTRY,sum(DOLLAR_VALUE_US), sum(QUANTITY), max(SHIPPING_TOTAL)
from transaction_detail_mv
group by QUARTER_DATE,COUNTRY

конечный результат для США должен иметь общую сумму 35

1 Ответ

1 голос
/ 09 мая 2019

Попробуйте:

select a.quarter_date, a.country, a.total_shipping, b.total_dollar_value, b.total_quantity
from 
 (select quarter_date, country, sum(shipping_total) as total_shipping
from 
    (select distinct quarter_date, country, shipping_total
    from transaction_detail_mv)c
  group by quarter_date,country
)a
join -- Below is part of your query
(select QUARTER_DATE ,COUNTRY,sum(DOLLAR_VALUE_US) as total_dollar_value, sum(QUANTITY) as total_quantity
from transaction_detail_mv
group by QUARTER_DATE,COUNTRY)b
on a.quarter_date = b.quarter_date
and a.country = b.country

Результат теста:

DB <> Fiddle

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...