Почему сумма не рассчитывает ожидаемые значения? - PullRequest
0 голосов
/ 01 сентября 2018

Может кто-нибудь объяснить, почему это приводит к разным результатам?

select distinct sku, product_title, sales_month
from ims_sales_data_history
where product_title = 'BERRY STRAWBERRY CV' 
and sales_month > 0
and department = 'Produce'
group by 1,2,3

Получает следующее. Сумма 159, что правильно.

0000000033565   BERRY STRAWBERRY CV 11
0000000033565   BERRY STRAWBERRY CV 10
0000000033565   BERRY STRAWBERRY CV 56
0000000033565   BERRY STRAWBERRY CV 4
0000000033565   BERRY STRAWBERRY CV 15
0000000033565   BERRY STRAWBERRY CV 5
0000000033565   BERRY STRAWBERRY CV 25
0000000033565   BERRY STRAWBERRY CV 27
0000000033565   BERRY STRAWBERRY CV 6

В приведенном ниже запросе есть уникальные имена, которые мне нужны, но неверные суммы.

SELECT product_title, SUM(sales_month)
FROM ims_sales_data_history
where department = 'Produce'
AND sales_month > 0
group by 1

Выходит так: сумма 194 (последняя строка)

BERRY STRAWBERRY 16OZ CV    2584526
BERRY STRAWBERRY 32OZ OG    603817
BERRY STRAWBERRY 32OZ CV    465426
FC BERRY STRAWBERRY OG  74961
BERRY STRAWBERRY BULK BY LB CV  4371
BERRY STRAWBERRY 64OZ CV    780
BERRY STRAWBERRY CV 194

Желаемый результат - уникальные имена и правильная сумма (159). Что я делаю не так?

1 Ответ

0 голосов
/ 01 сентября 2018

Они приводят к разным результатам, потому что у вас есть дубликаты в ваших данных.

Представьте, что ваши данные выглядят так:

sku             product_title       sales_month
0000000033565   BERRY STRAWBERRY CV 11
0000000033565   BERRY STRAWBERRY CV 11
0000000033565   BERRY STRAWBERRY CV 11

Первый запрос вернет:

0000000033565   BERRY STRAWBERRY CV 11

Кажется, это то, что вы хотите.

Второй вернется:

BERRY STRAWBERRY CV 33

Я бы посоветовал вам исправить ваш источник данных. Наличие дубликатов в данных, вероятно, не правильно.

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