172 похожих чатов

Добрый день. Есть таблица вида user_id, inserted_at, где второе поле

— это дата создания в таблице. Мне нужно построить график в диапазоне дат. Условно: возьми с позавчера по сегодня и покажи, сколько было пользователей.

Я через generate_series генерю даты, которые меня интересуют и по дате джойню таблицу с юзерами + груп бай дейт, все работает шикарно.

Но вот стала задача показывать не количество юзеров за каждый день, а динамику их роста. Т.е. если сегодня приехало 5 человек, то мне надо показать эти 5 + количество, которое было до этого момента, т.е. каждый новый день юзеров либо столько же, либо больше. Не может быть меньше, чем было вчера.

Сначала пробовал заюзать оконную функцию lag(), но она не совсем так работает, как я изначально думал. У кого какие мысли?

8 ответов

21 просмотр

Можно попробовать рекурсивное cte С условием остановки при достижении даты

Oleg-Kuzmenko Автор вопроса
Сергей Кравчук
Можно попробовать рекурсивное cte С условием оста...

Тоже думал о рекурсии, но не будет ли это то же самое, что отдельный запрос на каждую дату?

Oleg Kuzmenko
Тоже думал о рекурсии, но не будет ли это то же са...

Почти, в cte вы сможете использовать результаты прошлых вычислений в новых И запрос будет один, а не один на каждую дату Что удобно, для графаны например, с динамическим интервалом

Oleg Kuzmenko
Тоже думал о рекурсии, но не будет ли это то же са...

там сперва наполняется cte, а потом из него уже выборка происходит. cte да, может наполнятся построчно (один запрос на шаг рекурсии).

Oleg-Kuzmenko Автор вопроса
Сергей Кравчук
Почти, в cte вы сможете использовать результаты пр...

sum(arrived_count - left_count) over (order by date rows between unbounded preceding and current row)

Oleg Kuzmenko
sum(arrived_count - left_count) over (order by dat...

Достаточно просто order by date, остальное по умолчанию, это называется нарастающий итог.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта