SELECT c.customer_state AS state, g.geolocation_city,
ROUND(AVG((julianday(o.order_delivered_customer_date) - julianday(o.order_purchase_timestamp)) * 24), 2) AS average_delivery_time
FROM orders o
JOIN customers c ON o.customer_id = c.customer_id
JOIN geolocation g ON g.geolocation_state = c.customer_state
GROUP BY c.customer_state, g.geolocation_city
ORDER BY average_delivery_time;