Как удалить повторяющиеся значения при использовании оконной функции? - PullRequest
0 голосов
/ 08 февраля 2019

Я пытаюсь запустить приведенный ниже код для репликации суммы объема заказа по всем строкам.Я пытаюсь сделать это за последние 2 недели, что означает, что я должен получить 14 строк данных.Тем не менее, я получаю много дубликатов, и GROUP BY не будет работать.Может ли кто-нибудь помочь мне здесь?Спасибо!

SELECT
TO_CHAR(DATE_TRUNC('week',START_OF_PERIOD_LOCAL),'YYYY-MM-DD') AS WEEK,
TO_CHAR(START_OF_PERIOD_LOCAL , 'DY') AS DAY_OF_WEEK,
sum(ORDERS_DELIVERED) over () as total_orders
FROM p
WHERE
CITY_NAME='Hong Kong' AND
DATEDIFF('DAY',DATE_TRUNC('DAY',CURRENT_TIMESTAMP),DATE_TRUNC('DAY',START_OF_PERIOD_LOCAL)) BETWEEN -14 AND 0
GROUP BY 1,2
ORDER BY 1

результаты выборки

Идеальные результаты

1 Ответ

0 голосов
/ 08 февраля 2019

Чтобы удалить дубликаты, вам нужно использовать разные.Попробуйте следующее:

SELECT DISTINCT
TO_CHAR(DATE_TRUNC('week',START_OF_PERIOD_LOCAL),'YYYY-MM-DD') AS WEEK,
TO_CHAR(START_OF_PERIOD_LOCAL , 'DY') AS DAY_OF_WEEK,
sum(ORDERS_DELIVERED) over () as total_orders
FROM p
WHERE
CITY_NAME='Hong Kong' AND
DATEDIFF('DAY',DATE_TRUNC('DAY',CURRENT_TIMESTAMP),DATE_TRUNC('DAY',START_OF_PERIOD_LOCAL)) BETWEEN -14 AND 0
GROUP BY 1,2
ORDER BY 1
...