Podlodka Backend Crew - Публичное собеседование по базам данных

Поділитися
Вставка
  • Опубліковано 1 гру 2024

КОМЕНТАРІ •

  • @melnikovivan85
    @melnikovivan85 Рік тому +16

    Решение 1-й задачки без подзапросов:
    SELECT
    student_id,
    sum(case when mark = 5 then 1 end) as count_of_5ths
    FROM register
    GROUP BY student_id
    HAVING sum(case when mark = 3 then 1 end) < 10;

    • @Ramozzzz
      @Ramozzzz Рік тому

      Превращать каждый нужный результат в единицу и просуммировать? Нестандартный подход, интересно. Я бы просто воспользовался функцией count

    • @АлександрПетров-з6р
      @АлександрПетров-з6р Рік тому +1

      как же else?
      Select student_id,
      sum(case when mark = 5 then 1 else 0 end) as cnt_5
      From register
      Group by student_id
      Having sum(case when mark = 3 then 1 else 0 end) < 10

    • @melnikovivan85
      @melnikovivan85 Рік тому

      @@АлександрПетров-з6р с добавлением "else 0" результат не изменится.

    • @DAJakaRedAries
      @DAJakaRedAries 10 місяців тому +1

      @@АлександрПетров-з6р else необязателен в данном примере, без явного else по дефолту будет null

    • @nytakoe6156
      @nytakoe6156 8 місяців тому

      А если у него вообще нет 3ек ? )))

  • @ricardoangular3916
    @ricardoangular3916 3 роки тому +16

    Выкладывайте удачные собеседования, интереснен же разбор вопросов и решения задач.

  • @millkiway3682
    @millkiway3682 Рік тому +10

    59:35 если в конце собеседования вы слышите "... вы большой молодец" - значит вас уже зарубили и пытаются лечить

    • @WhfWh
      @WhfWh 5 місяців тому

      что значит "зарубили"?

  • @dummy_rider
    @dummy_rider 2 роки тому +8

    Выложите, пожалуйста, условия остальных задач по SQL. Уже ниже просили это сделать, но просьба почему-то осталась без внимания. 🤷‍♂

  • @Alex-jv8bp
    @Alex-jv8bp 2 роки тому +9

    А можно ссылку на файл с остальными задачами? Интересно посмотреть.

    • @EvgeniyBezginov
      @EvgeniyBezginov 7 місяців тому

      -- задача 3-- выдать количество дней в июне 2021 года, когда букингов более 10. create table bookings ( booking_id int, start_date date, end_date date);

  • @alevadnaya
    @alevadnaya 3 роки тому +17

    Спасибо, очень интересное видео, очень интересные вопросы. Но не понравились ответы соискателя, даже скорее с точки зрения софтскиллов. Могу сказать, что за опыт моих десятков собеседований мои интервьюеры ни разу меня так не поддерживали.

  • @КрабКебаб
    @КрабКебаб 10 місяців тому

    Ну в лоб решение было такое ( пишу не в иде, могут быть синтаксические ошибки)
    select
    student_id,
    count(mark) filter(where mark = 5)
    from register
    group by student_id
    having count(mark) filter(where mark = 3) > 10

  • @mpenzin
    @mpenzin 3 роки тому +28

    Вообще, жанр интересный, но соискатель сильно не в теме...

    • @millkiway3682
      @millkiway3682 Рік тому

      Видимо пилотная серия

  • @furybarzha
    @furybarzha Рік тому +16

    То, что человек, называющий себя тимлидом и согласившийся на интервью по БД, "вспоминает как устроен where" - это, конечно, удивительно. Но гораздо более удивительно другое - зачем эти муки загружать на ютуб??? Самое бесполезное видео из всего, что я когда-либо видел. Даже ржаки из тик-тока больше пользы несут - они хотя бы развлекают

    • @millkiway3682
      @millkiway3682 Рік тому

      Можно почувствовать свое превосходство. Но к сожалению это наше будущее и не только в IT

  • @АлексейКлимов-й5ш

    select
    t.stud_id
    ,count(case when t.mark = 5 then 1 end) as cnt5
    from register_t t
    where (t.mark = 3 or t.mark = 5)
    group by t.stud_id
    having count(case when t.mark = 3 then 1 end) < 10;

  • @igor68962
    @igor68962 3 роки тому +4

    Скиньте сюда, пожалуйста, остальные задачки!

  • @pismarevvitaly3257
    @pismarevvitaly3257 2 роки тому +16

    Жесть какая-то. Авторам канала совет, делайте хотя бы первичный скрининг потому что кандидат даже на позицию джуна не тянет. Я бы на пушечный выстрел к такому тимлиду не подошел )

    • @millkiway3682
      @millkiway3682 Рік тому +1

      Да это просто кто-то из зрителей кто согласился поучаствовать, он даже запрос по строкам не переносит - скорее всего он очень начинающий либо из другой сферы (например фронтендер ).

  • @tee_zed
    @tee_zed Рік тому +1

    Секция комментов достойна самого канала

  • @АлинаТолстопятова-х3ж

    Я бы хотела попробовать тоже так пособеседоваться, интересно бы было потом на себя со стороны посмотреть

  • @cybertim7193
    @cybertim7193 2 роки тому +4

    то есть это собес на бэкэнд разраба?

  • @millkiway3682
    @millkiway3682 Рік тому +1

    Очень полезное видео для тимлидов.

  • @millkiway3682
    @millkiway3682 Рік тому +1

    А Павел-Гриша совсем не плох !

  • @АлександрДворцов-ш1б
    @АлександрДворцов-ш1б 2 місяці тому

    начало 8:35

  • @gijduvon6379
    @gijduvon6379 3 роки тому +4

    Не хочется быть хейтером, но соискатель слабый. Жене
    Хуже всего то, что он пытался сохранить лицо, хотя всем было просто, что это фейл.

  • @crazy_pythonist
    @crazy_pythonist 4 місяці тому

    Начало собеса с 7:40

  • @developer-c0re
    @developer-c0re 2 роки тому +5

    Эпический фейл...

  • @truturs3003
    @truturs3003 2 роки тому +1

    select id, scor_5_count
    FROM
    (
    select id, count(scor_3) scor_3_count, count(scor_5) scor_5_count FROM
    (
    select id, iif(marc=3,1,null) scor_3, iif(marc=5,1,null) scor_5 from t
    ) t1
    group by id
    ) t2
    where scor_3

  • @jamerlanx
    @jamerlanx 3 роки тому +14

    Ну и тимлид... еще и вызвался проходить собес...

    • @eugenysh5731
      @eugenysh5731 3 роки тому +6

      Тимлид, а не техлид ведь xD

    • @pyramidhead9692
      @pyramidhead9692 2 роки тому +4

      А что надо было делать?

    • @millkiway3682
      @millkiway3682 Рік тому +2

      Основной скилл тимлида - это довести вверенную ему часть проекта до успешного завершения, а не помнить как пользоваться SQL. Хороший тимлид делегирует такие задачи сеньору, а тот спустит их жун, затем жун вернёт, а сеньор проверит и скажет тимлиду что все ок.

  • @jerrylaniakio
    @jerrylaniakio Рік тому +3

    Какие-то понты в комментах. "Даже на джуна не тянет". Мои знакомые синиоры с рейтами вплоть до $200/час эту задачу не решили бы на собеседовании. Вообще, такие задачи нельзя давать на собеседовании. Задача интервьюера проверить опыт, а не трахнуть мозг. От собеседования просто тянет желанием пассивно-агрессивно унизить кандидата.

    • @ТимурСафаров-в1ч
      @ТимурСафаров-в1ч 11 місяців тому +1

      Единственный адекватный коммент который я прочитал тут

    • @_v_100
      @_v_100 10 місяців тому +2

      Так, видимо, эти "синиоры" не в IT работают, а предоставляют услуги из другой области )))

    • @jerrylaniakio
      @jerrylaniakio 10 місяців тому +1

      @@_v_100 им наплевать на мнение таких как ты. Это профессионалы с рейтом, до которого ты, почти наверняка, никогда не дорастёшь.

    • @2Balthasar
      @2Balthasar 9 місяців тому +1

      Да у меня брат сеньор!!!!11!11

    • @jerrylaniakio
      @jerrylaniakio 9 місяців тому

      @@2Balthasar у меня самого рейт на фултайме 50 долларов в час, это с учётом того, что сейчас валютную удалёнку найти невероятно трудно. До СВО рейт был заметно выше. На фрилансе у меня стабильно 150 долларов в час.
      Речь выше идёт о ребятах намного круче меня, тебе до их уровня чисто статистически не дотянуть никогда.
      Отдыхай.

  • @noone-hi6kq
    @noone-hi6kq 2 роки тому +3

    фу, на маке, сразу ясно что дизайнер или продукт, только языком чесать способен

  • @СергейФилатов-у8и
    @СергейФилатов-у8и 10 місяців тому

    СОЕДИНЕНИЕ, прекратите употреблять слово "джойн". ВЫ СОЕДИНЯЕТЕ ТАБЛИЦЫ/множества/подмножества, НИЧЕГО ДРУГОГО НЕ ПРОИСХОДИТ.

  • @ДмитрийЗаставной
    @ДмитрийЗаставной 2 роки тому

    Такие вещи нужно делать через разворот, на Oracle вот три варианта:
    1. SELECT
    student_id,
    cnt5
    FROM
    (
    SELECT
    student_id,
    sum( cnt3 ) cnt3,
    sum( cnt5 ) cnt5
    FROM
    (
    SELECT
    m.student_id,
    m.mark,
    CASE WHEN m.mark = 3 THEN 1 ELSE 0 END cnt3,
    CASE WHEN m.mark = 5 THEN 1 ELSE 0 END cnt5
    FROM marks m
    )w
    GROUP BY student_id
    )q
    WHERE cnt3 < 10;

    SELECT
    DISTINCT
    student_id,
    cnt5
    FROM
    (
    SELECT
    student_id,
    sum( cnt3 ) over( PARTITION BY student_id ) cnt3,
    sum( cnt5 ) over( PARTITION BY student_id ) cnt5
    FROM
    (
    SELECT
    m.student_id,
    m.mark,
    CASE WHEN m.mark = 3 THEN 1 ELSE 0 END cnt3,
    CASE WHEN m.mark = 5 THEN 1 ELSE 0 END cnt5
    FROM marks m
    )w
    )q
    WHERE cnt3 < 10;
    SELECT student_id, "5"
    FROM
    (
    SELECT student_id, "3", "5" FROM marks
    PIVOT(
    COUNT(mark)
    FOR mark
    IN ( 3,5 )
    )w
    )q
    WHERE "3" < 10;

  • @AlexukeMan
    @AlexukeMan 3 роки тому +3

    SELECT *
    FROM (
    SELECT student_id,
    count(case when mark = 3 then 1 end) triplets,
    count(case when mark = 5 then 1 end) fives
    FROM register
    GROUP BY student_id
    ) tmp
    WHERE triplets < 10

    • @vladimirsrednikh3023
      @vladimirsrednikh3023 3 роки тому

      Там наверно не count нужно а sum

    • @AlexukeMan
      @AlexukeMan 3 роки тому

      @@vladimirsrednikh3023
      Обрати внимание, что у case нету else - в выдаче будут записи только удовлетворяющие условие. Их то и считаем. Sum тоже можно, но тогда нужна еще ветка else - sum(case when mark = 3 then 1 else 0 end) triplets.