Работа без оконных функций в SQLITE

#sql #sqlite #window-functions

#sql #sqlite #окно-функции

Вопрос:

Вот моя ситуация, я использую nixos для приложения на python, и у меня установлен python 3.6.5, sqlite для этой версии не поддерживает оконные функции, а изменение версии python в nixos очень болезненно. Достаточно ли просто избежать использования этих функций? например, каким стал бы этот фрагмент кода?

 cast(dense_rank() over(order by period) as int)
  

Ответ №1:

Обычно вы используете подзапрос:

 select
    ...
    (select count(distinct t1.period) from mytable t1 where t1.period <= t.period) as rnk
from mytable t