SQL红移选择查询来获取总销售额递减
问题描述:
能约1帮助我与SQL红移查询,得到的结果如下SQL红移选择查询来获取总销售额递减
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
答
我不知道拿到总销售的服务(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
非常感谢它的工作 但我们需要添加 '(SUM(daily_sale) OVER(ORDER BY order_date desc ROWS UNBOUNDED PRECEDING) ' 在内部查询中,否则会引发错误 '具有ORDER BY子句的聚合窗口函数需要一个框架子句' 但仍thnx的解决方案 – ankitkhanduri
不客气,我从来没有使用'amazon-redshift',但我的查询很好地工作SQL SERVER。很高兴如果这对你有帮助 –