TGViewer
Я твой продукт анализировал Я твой продукт анализировал @datadeepdive · 1.68K subscribers
Post #195 2.02K
Штука из разряда “кек, так можно было”. Сижу значит, никого не трогаю, пишу запросец. Он там обрастает пошаговой логикой, постепенно набирая в подзапросах. И вот в какой-то момент промежуточная таблица принимает вид, где есть две колонки с датами over(partition by user, dt), ну т.е. одинаковые на все строки юзера за день. Но не суть.

А суть тут — эти колонки символизируют время совершения одного из 2-х предопределённых событий, в первой время первого, во второй время второго. Если события не было, то там NULL. А если NULL в обеих колонках, то это означает совершение третьего события, но нам уже не важно его точное время.

Задача промежуточной таблицы определить какое событие из 3-х было в цепочке инициирующим.

Ну, чё тут думать, пишем кейс. И вот значит пишу я кейс, и дохожу до такого момента:

case when event_1 is null and event_2 is not null then "event_2"
when event_1 is not null and event_2 is null then "event_1 "
when event_1 is null and event_2 is null then "event_3"
when event_1 is not null and event_2 is not null then...


И я такой, опа, а там опять развилка. Думаю, дай на дурака воткну ещё одно условие сюда. И воткнул:

case when event_1 is null and event_2 is not null then "event_2"
when event_1 is not null and event_2 is null then "event_1 "
when event_1 is null and event_2 is null then "event_3"
when event_1 is not null and event_2 is not null then case when event_1 < event_2 then "event_1"
else "event_2" end end as eternal_event


И оно отработало, честно соблюдая всю логику кейса.

Не то чтобы это что-то эдакое, по логике оно и должно было отработать, конечно. Скорее всего я даже чёт такое встречал, просто не припомню чтобы мне такое нужно было когда-то. А оно есть, оказывается.

Скорее всего не везде конечно, и не всегда, но мне везде и всегда и не надо.

Вот такая вот логика мультиусловий в конструкции case заложена 🙂
  • 👍 9
More from @datadeepdive
  1. Jul 28, 2026📌 4/4, Бизнес уровень. Пожалуй самый сложный, и самый простой уровень одновременно. Понят…
  2. Jul 28, 2026Сори, отвлёкся 😀 📌 3/4, Продуктовый уровень. Этот раздел ставит перед собой почти филосо…
  3. May 31, 2026📌 2/4, Операционный уровень. Эта часть про то, насколько оптимально расходуются ресурсы.…
  4. May 31, 2026📌 Про оценку направления экспериментов, 1/4 Я как-то недавно выступал на одной конфе, рас…
  5. May 26, 2026А вот маленький демо датасет, если захочется глянуть как оно всё работает
  6. May 26, 2026Прикрутили типизацию аккаунтов, теперь в соло можно пользоваться без всяких ключей, с огра…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →