運行總和我有下面的所有列的表,除了黃色的有間隙
基本上表有客戶的ID,出售發生的日期和總金額的花費當天的客戶(銷售)。現在我必須計算當天每個客戶的時間範圍內的累計銷售額,包括當天的銷售額。例如,設置時間框架爲3天的客戶2233買了兩次(14日沒有),所以他15日的累計銷售額是26,而在13日他們是25.
我不能創建新表所以我試圖這種方法,但它是相當緩慢
SELECT t.dt,
Count(CASE WHEN t.running_sale < 1.99 THEN 1 ELSE NULL END) as "Low spender",
Count(CASE WHEN t.running_sale BETWEEN 1.99 and 4.99 THEN 1 ELSE NULL END) as "Medium spender",
Count(CASE WHEN t.running_sale > 4.99 THEN 1 ELSE NULL END) as "High spender"
FROM (SELECT dt, channel, id, (
SELECT SUM(revenue)
FROM myTable rd
WHERE CAST(rd.dt AS DATE)
BETWEEN (CAST(rd.dt AS DATE) - INTERVAL '3' DAY) AND CAST(rd.dt AS DATE) AND
rd.id = r.id
) running_sale from myTable r) t
WHERE channel = 'retail'
AND dt BETWEEN '2017-06-01' AND '2017-06-15'
GROUP BY dt
limit 100
使用分析? '總和(銷售)OVER(分區由ID ORDER BY日期asc 行之間2 PRECEDING)作爲RunningSales' – xQbert
不起作用,因爲將在第12天採取ID 2233將需要11和06,這是一個差距超過3天。 –
我有點得到它,但我不明白爲什麼2233在15日有26,那麼如果範圍是3天前包括15,14,13這將給22不是26.或者應該包括12,所以範圍是15,13,13,12? – xQbert