WITH hawaiianOrders AS (
SELECT orders.orderDate::date as order_date
, count(distinct orders.id) as num_orders
FROM products
JOIN order_items
ON products.SKU = order_items.SKU
JOIN orders
ON order_items.orderId = orders.id
WHERE products.name like '%Hawaiian%'
GROUP BY 1
ORDER BY 1 ASC
), returnResults AS (
SELECT *
, avg(num_orders) over (
order by order_date asc
range between interval 3 days preceding
and interval 3 days following
) as moving_avg
FROM hawaiianOrders
)
SELECT *
FROM returnResults