SQL. Решаем ТЕСТОВЫЕ ЗАДАНИЯ из AMAZON и FACEBOOK (подробный разбор)

  Рет қаралды 69,672

Noukash

Noukash

Күн бұрын

Пікірлер
@piktogor
@piktogor 2 жыл бұрын
Блиииин… как круто! Всегда думал, что пока не познаешь SQL, Python, статистику, алгоритмы …. нечего даже соваться на должность продуктового аналитика. А тут человек с опытом говорит, что что-то не знать или забывать это нормально. Я прям заряжен после этого видео. Большое спасибо 🙏🏻
@freedomtv2295
@freedomtv2295 Жыл бұрын
Так забыть можно, но совсем не знать нельзя, а знать надо очень хорошо
@piktogor
@piktogor Жыл бұрын
@@freedomtv2295 согласен
@SaltLakeCity_tog
@SaltLakeCity_tog Жыл бұрын
Не знаю у кого как, мне хватает select * чтобы потом зафильтровать данные в query и запихать их в pivot Но изучить питон хочется, да
@traktin4590
@traktin4590 3 жыл бұрын
О, решение задач! То, что нужно. Спасибо за видео!
@VitaliyZlobin
@VitaliyZlobin 2 жыл бұрын
Это реально крутой совет, помню как устраивался аналитиком после sql-ex и реально я знал только синтаксис SQL, а не его практическое применение. На 9:30 решение не только извращённое, оно ещё и по производительности плохое - 2 раз в таблицу нужно ходить. Но это скорее разрабам полезно знать, аналитикам пофиг)) Благодарю за видео! Новичкам буду рекомендовать этот сайт, после 20-30 задач на sql-ex
@Noukash
@Noukash 2 жыл бұрын
У меня никогда в основной работе не было задачи оптимизировать запросы по производительности. Поэтому какой костыль написал и нормально))) Но это действительно может быть важно - хорошее замечание. Спасибо :)
@АнарГусейнов-с5ы
@АнарГусейнов-с5ы 2 жыл бұрын
Спасибо огромное. Очень интересно . Можешь продолжить такие разборы делать 🙏👋🏿👍👏
@ИлонаИнч
@ИлонаИнч 2 жыл бұрын
Андрей, спасибо, смотрю твои видосы с удовольствием. Так доходчиво и по-доброму)
@InvisibleEssence
@InvisibleEssence 3 жыл бұрын
Спасибо за выпуск, очень интересно! SQL начала изучать недавно, с удовольствием решаю всякие задачки) А вашу задачку попробовала решить так: если у нас только ежемесячная подписка (то есть отмена возможна только в течение месяца после покупки), то в новой таблице (t1) даты отмены привести к датам как из таблицы (t2) с датами appstore. А потом посмотреть какие данные из таблиц не пересекаются. Примерно так: with sub_1 as (select user_id, to_char(app_store_date, 'YYYY-MM-DD')::date as app_store_date from( SELECT event, created_at, user_id, lag(created_at) over (partition by user_id order by created_at asc)+interval '1 month' as app_store_date FROM public.t1) as sub where event='canceled') select t2.user_id, t2.date, sub_1.app_store_date, sub_1.user_id from public.t2 t2 full outer join sub_1 on t2.user_id=sub_1.user_id and t2.date=sub_1.app_store_date where countevent='canceled' and ((t2.user_id is NULL and t2.date is NULL) or (sub_1.user_id is NULL and sub_1.app_store_date is NULL))
@КириллПотехин-й9ф
@КириллПотехин-й9ф 3 жыл бұрын
Было бы здорово, если бы разбирались задачи с собеседований по статистике
@Noukash
@Noukash 3 жыл бұрын
Обязательно будет! И по терверу тоже разбор будет
@ДмитрийМ-х9щ
@ДмитрийМ-х9щ 11 ай бұрын
Отличные реккомендации, сайты классные! Спасибо!
@yuripryadko3111
@yuripryadko3111 2 жыл бұрын
самое полезное видео на всем канале, ладно, одно из)
@Руслан-п5в1ж
@Руслан-п5в1ж 3 жыл бұрын
Даешь, больше SQL!!!
@ExcelStore
@ExcelStore 3 жыл бұрын
Спасибо за видео! Доступно и понятно.
@Noukash
@Noukash 3 жыл бұрын
Спасибо вам за комментарий!)
@georgyozbetelashvili3930
@georgyozbetelashvili3930 3 жыл бұрын
Крутой канал. Сейчас увидел в ТГ ссылку, сразу подписался! Тоже хочется стать продуктовым аналитиком
@Noukash
@Noukash 3 жыл бұрын
Спасибо за комментарий!) И удачи в освоении профессии :)
@TimofeySuyargulov
@TimofeySuyargulov 3 жыл бұрын
Я человек простой. Вижу новое видео от Андрея - ставлю лайк
@Noukash
@Noukash 3 жыл бұрын
Спасибо Timo
@cor4win
@cor4win 3 жыл бұрын
Не знал про stratascratch, спасибо) Во втором задании все-таки решение через case выглядит элегантнее: меньше кода, проще читается, но это субъективно) Сразу о нем подумал, еще до открытия решений) И без форматирования кода сложновато читается в моментах как на 17:18, например. Без отступов всё превращается в кашу, особенно новичкам может быть сложно понять такой код.
@Noukash
@Noukash 3 жыл бұрын
Спасибо за комментарий! Да, по разному можно решить, я если есть возможность лучше лишний раз заджойню, хотя может быть ресурсозатратно. Про форматирование да, это точно! Учту
@СергейЩепилин
@СергейЩепилин 2 жыл бұрын
Рубашка огонь, сам на ex тренируюсь
@lelich7
@lelich7 2 жыл бұрын
Очень крутой формат! Спасибо!
@ЛарисаКостенкова-к2й
@ЛарисаКостенкова-к2й Жыл бұрын
Спасибо за видео, хотелось бы побольше подобных с решениями задач!
@eb6006
@eb6006 2 жыл бұрын
Даже очень круто, где-то бы поднатаскаться по SQL, и поиску в массиве и сортировках
@aysenjol3341
@aysenjol3341 5 ай бұрын
Очень полезные видео снимаешь 👍 Спасибо ☺️
@johnconnor7338
@johnconnor7338 3 жыл бұрын
Большое спасибо за выпуск! как раз то что я искал последнее время. Я учусь на Системного аналитика на курсах sk**********(знаю знаю это никому не нужно итд. мне так удобно) сейчас пытаюсь проглотить книгу по SQL от Алексанрова вы вроде еще в каком то видео советовали одну книгу , но я забыл в каком. Пытался решать задачки сам, но мне там так на сували, что я обратился к литературе, надеюсь поможет, смотрю ваши видео по нескольку раз очень интересно. По аналитике их к сожалению не много интересных от других тоарищей. У меня фарм. образование , хочу стать аналитиком в фарм индустрии надеюсь потяну, честно, для гуманитария это непросто но профессия жуть как интересная очень расширяет рамки познаваемого. Ваши видео очень помогли с мотивацией, не бросайте! Анализирую что 100к подписчиков у вас будет
@Noukash
@Noukash 3 жыл бұрын
Спасибо большое за такое комментарий! И удачи с обучением. В будущем обязательно будет больше видео про аналитику и разбор основных понятий/инструментов и задач. Рад, что видео полезны :)
@johnconnor7338
@johnconnor7338 3 жыл бұрын
@@Noukash было бы круто, я буду очень ждать
@RROxanaSS
@RROxanaSS 2 жыл бұрын
Отличное видео! Спасибо
@amiran_g
@amiran_g 2 жыл бұрын
Подсяду на Ваши видосы, полезно
@_GreenSnake_
@_GreenSnake_ Жыл бұрын
Спасибо за Ваш труд
@elmira363
@elmira363 2 жыл бұрын
Только начинаю Спасибо за труд! Лайк и подписка прибыли! )) успеха!
@vladnn8322
@vladnn8322 2 жыл бұрын
Очень полезно!
@ИринаКузнецова-х8п6э
@ИринаКузнецова-х8п6э 2 жыл бұрын
Самая простая функция по датам DATEDIFF, почему вы ее не используете, вычитание это ненадежно Спасибо за разбор!
@khukhua
@khukhua Жыл бұрын
Автор сказал что она не работает в этом диалект где тренажёр
@jimivlob
@jimivlob 3 жыл бұрын
системно, подробно, интересно расписаны выпуски лайк+коммент+подписка желаю тебе как можно скорее стать продактом!
@Noukash
@Noukash 3 жыл бұрын
Спасибо огромное за комментарий и пожелание :)
@KyryloKuznietsov
@KyryloKuznietsov 7 ай бұрын
Как я понимаю на StrataScratch уже нельзя проверять ответы без подписки?
@yusifibragimov4311
@yusifibragimov4311 2 жыл бұрын
Спасибо!
@GPTMusic-nx4qn
@GPTMusic-nx4qn 6 ай бұрын
Интересно, но я так и не понял, зачем в запросе нижнее подчеркивание...?
@alexanderpustota4206
@alexanderpustota4206 Жыл бұрын
Последняя задача непонятна: "Хорошо ли, для всех ли пользователей приходят отмены". Что значит хорошо, а что значит плохо? Как они могут не приходить и каким образом это можно отловить?
@rotvx
@rotvx 2 жыл бұрын
не учитываешь версии MS SQL... приходиться поддерживать старые верси в которых нет WITH, OVER etc.... поэтому есть только JOIN-s
@yulia23714
@yulia23714 3 жыл бұрын
Кстати, не во всех диалектах можно писать Group by 1, 2. В кликхаусе, например, нельзя, в вертике можно
@Noukash
@Noukash 3 жыл бұрын
Спасибо за комментарий! Не знал такой особенности
@СергейЩепилин
@СергейЩепилин 2 жыл бұрын
Diff, sub_date, date_sub?
@Forest_dahfksd
@Forest_dahfksd Жыл бұрын
Некоторые пользователи пишут замудреные запросы, которые быстрее отрабатываются. Аналитиков просят писать оптимизированные запросы?)))
@ArtemKuznetsovTV
@ArtemKuznetsovTV 3 жыл бұрын
На какие позиции фб/Амазон спрашивает sql? Ни разу такого не встречал
@Noukash
@Noukash 3 жыл бұрын
На аналитические позиции. Все что связано с data science, product analytics
@ArtemKuznetsovTV
@ArtemKuznetsovTV 3 жыл бұрын
@@Noukash понятно, спасибо. Не встречал людей на этих позициях, их кажется мало очень. В соседних командах таких нет.
@ivani3237
@ivani3237 2 жыл бұрын
ну на дата инженера 100% надо знать хорошо sql ..
@ArtemKuznetsovTV
@ArtemKuznetsovTV 2 жыл бұрын
@@ivani3237 да, я уже глянул гайдлайн по собеседованимя, действительно спрашивают. Когда проводишь интервью у обычных SDE не особо знаешь, что там у других направлений :-)
@maximgesler
@maximgesler 3 жыл бұрын
Такой сайт для Python есть ?
@Noukash
@Noukash 3 жыл бұрын
Да, там есть задачи и для python :)
@maximgesler
@maximgesler 3 жыл бұрын
@@Noukash можно показать, задачки для каждого уровня, интересно даже посмотреть какую задачу на junior позицию в собеседованиях
@Krakatoa_27
@Krakatoa_27 2 жыл бұрын
Спасибо за видео и новый ресурс! Но за group by 1,2 дизреспект. Крайне неудобная штука для будущего легаси.
@Mrrobotvvt
@Mrrobotvvt 7 ай бұрын
Канкел😂
@sergey-chigarev
@sergey-chigarev Жыл бұрын
Оконные функции это полный капец и мозговыверт! Абсолютно непонятный синтаксис и логика. В вот заджоинить таблицу с собой и разницу дат указать в условии джоин очевидное решение как по мне. Интересно, какой вариант быстрее
@СяотестерСяомей
@СяотестерСяомей Жыл бұрын
На первый взгляд именно так и кажется, но... как всегда есть нюансы. Во первых, синтаксис оконных функций только на первый взгляд кажется непонятным. После того как вы нагуглите где нибудь картинку схематично показывающую смысл определения окна поверх вашей выборки-все резко прояснится. Во вторых, использование концепции окна позволяет избежать избыточной выборки данных. Когда вы делаете JOINT-ы даже той самой таблицы на себя же саму - сервер по факту извлекает и повторно обрабатывает данные, шарит по ключам, индексам, выполняет сравнения и сопоставления условий в ON секции. Попробуйте выполнить EXPLAIN для вашего сложносоставного запроса и посмотреть что по факту делает сервер чтобы его обработать. При использовании оконных функций - данные извлекаются только один раз, при первом считывании таблицы, а оконные функции манипулируют все тем же набором данных, просто "тасуют" его так, как вы определите в условиях разбивки на фреймы и правилах упорядочивания внутри окна. Т.е. вы избавляете сервер от лишних операций выборки и соответственно экономите ресурсы. Ну и еще, эти функции позволяют например легко вычислить разницу между какими то значениями, переместив логику предварительной обработки данных на сторону сервера, это может быть критично для систем где высока стоимость пересылки данных, или их последующей обработки на стороне приложения(например написанного на "тяжелом" скриптовом языке который работает медленно, и неэффективно расходует память для хранения переменных). В этих случаях обычно становится выгодно максимально предварительно обработать данные уже на этапе SQL запроса, чтобы получить компактную "выжимку" именно тех данных которые нужны вашему приложению, а не извлекать вагон и тележку значений, гонять их по сети, а потом их обрабатывать в приложении порождая кучу объектов и тратя под это память.
@SuperPrimus
@SuperPrimus 7 ай бұрын
Кстати, join саму с собой - это чуть ли не единственный вариант решить такую задачу запросом 1С, где в принципе нет оконных функций.
@michaelketov
@michaelketov 2 жыл бұрын
Автор конечно странный, оценивать запросы с точки зрения "красивости". Как по мне единственный правильный критерий - скорость выполнения. Толку от красивости , если он выполняется в разы дольше "некрасивого"
@ivani3237
@ivani3237 2 жыл бұрын
ну второй критерий - читабельность, при прочих равных надо писать так чтобы было понятно
@АндрейУшаков-ж9м
@АндрейУшаков-ж9м 4 ай бұрын
Ну вот когда в собственном же проекте вернешься к супер-оптимальному монстр-запросу, и, побившись об него часик-другой, вскинешь руки к небу и спросишь, кто же тебе "в штаны насрал" - поймешь, какой толк от "красивости".
@michaelketov
@michaelketov 4 ай бұрын
@@АндрейУшаков-ж9м когда у тебя несколько тысяч юзеров и каждый хочет ,чтобы запросы летали , то глубоко наплевать на красивость. а для читабельности запроса есть такая хрень как комментарии. нормально закомментированный код с документацией может быть любой сложности.
@МихалМихалыч-в8х
@МихалМихалыч-в8х 2 жыл бұрын
Ресурс интересный и полезный, но есть замечание по первой задаче от амазона, запрос провалился, но решение не верное. В концовке должно быть select distinct user_id from preptable where next_purchase_at-created_at
ТВОИ РОДИТЕЛИ И ЧЕЛОВЕК ПАУК 😂#shorts
00:59
BATEK_OFFICIAL
Рет қаралды 6 МЛН
How many people are in the changing room? #devil #lilith #funny #shorts
00:39
ИНДЕКСЫ В БАЗАХ ДАННЫХ. СОБЕС В OZON.
33:59
Ваня Ио про разработку
Рет қаралды 68 М.
Вопросы по SQL и Базам Данных на интервью
14:36
Програмысли Влог
Рет қаралды 83 М.
Курс по SQL. Урок 23. Оптимизация запросов.
30:16
Владимир Амелин
Рет қаралды 14 М.
ТВОИ РОДИТЕЛИ И ЧЕЛОВЕК ПАУК 😂#shorts
00:59
BATEK_OFFICIAL
Рет қаралды 6 МЛН