Добавить производный столбец из существующего столбца на основе условия в большом запросе

Предположим, у нас есть таблица ниже

ID пользователя название события время события Адам подписаться 1 Адам обновление 4 Адам обновление 5 Адам взбалтывать 7 Адам подписаться 10 Адам обновление 20

Примечания:

Я хотел добавить числа для каждой строки, чтобы итоговая таблица выглядела так:

пользователь название события время события подписка_время Адам подписаться 1 1 Адам обновление 4 1 Адам обновление 5 1 Адам взбалтывать 7 1 Адам подписаться 10 10 Адам обновление 20 10 Адам обновление 30 10 Адам взбалтывать 40 10

Чтобы объяснить, каждое событие обновления принадлежит предыдущему событию подписки. Мне нужен производный столбец, показывающий время для этого события подписки. Поэтому производный столбец должен совпадать со временем подписки на это событие. Моя конечная цель — узнать количество продлений/отмен и т. д. за заданное время подписки.

Надеюсь, я хорошо объяснил свой вопрос. Спасибо за ваши усилия и время.

ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
0
53
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Рассмотрим ниже подход, аналогичный предыдущему моему ответу.

SELECT *,
       IF(event_name IN ('subscribe', 'renewal', 'churn'),
          -- below will return most recent time of *subscribe* event
          LAST_VALUE(IF(event_name = 'subscribe', event_time, NULL) IGNORE NULLS) OVER (PARTITION BY user ORDER BY event_time),
          NULL
       ) AS subscription_time
  FROM sample_table;

Результаты запроса

Другие вопросы по теме