Ссылка на этот вопрос здесь: https://leetcode.com/problems/immediate-food-delivery-ii/
Мое решение следующее, с CTE и оконной функцией. Я пробовал в mysql и oracle, но ни один не работает, и оба показывают синтаксическую ошибку. Не могу понять, почему.
with rank as
(
select
customer_id,
order_date,
customer_pref_delivery_date,
rank() over (partition by customer_id order by order_date asc) as rnk
from
delivery
)
select
round(avg(f),2) as immediate_percentage
from
(select
case
when order_date = customer_pref_delivery_date
then 1 else 0
end as f
from
rank
where
rnk = 1) as first_orders;
Oracle ошибка:
Ошибка: ORA-00933: SQL команда неправильно завершена
Mysql ошибка:
В синтаксисе SQL имеется ошибка; проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса, который можно использовать рядом со значением 'rank as (выберите customer_id, order_date, customer_pref_delivery_date, rank () ove') в строке 3