2016-08-01 3 views
0

Я пытаюсь подвести итог для каждой даты в предварительном просмотре 30 дней, однако это не суммирует ничего В следующем SQL я пытаюсь получить для даты заказа X все заказы, которые пришли для If Date > = Дата -30days затем SUM (Заказы последних 30 дней) ENDBIQQUERY - Summing previews 30 дней

SELECT 
    a.Shop_Country 
    ,a.order_date 
    ,a.Order_Week 
    ,SUM(a.number_Orders) as orders 
    ,CASE WHEN a.Order_Date >= DATE_ADD(b.Order_Date, -30, "day") THEN SUM(a.number_Orders) ELSE 0 END as total_orders 
FROM 
    [marketing-int:finance_report.overall_view] a 
JOIN [marketing-int:finance_report.overall_view] b 
    ON a.Order_Date = b.Order_Date 

GROUP BY 
    a.Shop_Country 
    ,a.Order_Date 
    ,b.Order_Date 
    ,a.Order_Week 
    ,a.Order_Channel 
    ,a.number_Orders 
+0

А что это значит? Мы должны догадываться, что здесь происходит? – Randy

+1

удалить a.number_orders из группы по предложению – niketshah90

+0

Дополнительная информация поможет. Вы получаете синтаксическую ошибку? Ошибка запроса? Что ты пытаешься сделать? Чем больше информации вы дадите, тем легче мы сможем вам помочь. –

ответ

0

Попробуйте ниже

SELECT 
    Shop_Country 
    ,order_date 
    ,Order_Week 
    ,SUM(number_Orders) OVER(PARTITION BY Shop_Country ORDER BY Order_Date 
     RANGE BETWEEN 29 PRECEDING AND CURRENT ROW) AS total_orders 
FROM 
    [marketing-int:finance_report.overall_view] 

Надеется, что это будет хорошее началом для вас

См window-frame-clause раздел Window functions для получения более подробной информации