2017-02-10 5 views
0

Может кто-1 поможет мне с SQL красным смещением запроса, чтобы получить результат, как упомянутый нижеSQL Redshift Выберите запрос, чтобы получить общий объем продаж в убыв

3 колонки
order_date, daily_sale (продажа производится на THT день), total_sale (total_sale до настоящего времени) order_date daily_sale total_sale 2017-01-31 1830 206316.4 2017-01-30 2487.5 206316.4 2017-01-29 5456 206316.4 2017-01-28 2786.2 206316.4 2017-01-27 2337 206316.4 2017-01-26 1404.2 206316.4

Как можно получить общую продажу таким образом

order_date daily_sale total_sale 2017-01-31 1830 206316.4 2017-01-30 2487.5 204486.4 (206316.4 -1830) 2017-01-29 5456 201999.4 (206316.4 -1830-2487.5) and so on

ответ

1

Я не знаю вашего служба (DB) поддерживает функции окна или нет.

Если да, то вы можете попробовать этот запрос:

(поставить вместо ttt ваше имя таблицы)

SELECT ttt.order_date, daily_sale, total_sale, daily_sale+total_sale-t.total_last_daily AS desirable_column FROM ttt 
INNER JOIN (SELECT order_date, SUM(daily_sale) OVER(ORDER BY order_date desc) total_last_daily FROM ttt) AS t 
ON ttt.order_date = t.order_date 
ORDER BY ttt.order_date DESC 
+0

Большое спасибо, что работал , но нам нужно добавить '(SUM (daily_sale) OVER (ORDER BY order_date desc ROWS UNBOUNDED PRECEDING) ' Во внутреннем запросе в противном случае это вызовет ошибку ' Агрегатные функции окна с предложением ORDER BY требуют предложения фрейма' Но все равно thnx для решения – ankitkhanduri

+0

Приветствую вас, я никогда не использовал 'amazon-redshift', но мой запрос хорошо работал SQL SERVER. Рад, если это вам помогло –