Удаление дубликатов email | Практика по SQL

Ғылым және технология

Разбираем задачу с Leetcode по удалению дубликатов записей в таблице. Пример использования подзапросов в команде DELETE. Страница курса - www.asozykin.ru/courses/sql
Поддержать курс можно через сервис Cloudtips - pay.cloudtips.ru/p/45a4055b
Заранее спасибо за помощь!
VK - avsozykin
telegram - t.me/a_sozykin
Мой сайт - www.asozykin.ru
Задача Delete Duplicate Emails - leetcode.com/problems/delete-...
Скрипт для создания локальной таблицы с дубликатами email - www.dropbox.com/s/ylgdrn378s3...
00:00 - Задача удаления дубликатов
01:28 - Создание таблицы для экспериментов в PostgreSQL
02:31 - Разработка подзапроса
03:21 - Разработка команды для удаления дубликатов
04:28 - Запуск команды на Leetcode
05:15 - Учет особенностей MySQL на Leetcode
06:24 - Итоги
Мой канал с краткими и понятными объяснениями сложных тем в ИТ и компьютерных науках - / andreysozykincs

Пікірлер: 51

  • @Dima-uz8gi
    @Dima-uz8giАй бұрын

    Вау! Неожиданный ньюанс для MySql!

  • @AndreySozykin

    @AndreySozykin

    Ай бұрын

    Да, разные СУБД по разному выполняют SQL.

  • @mariakisel9829
    @mariakisel98292 жыл бұрын

    Здравствуйте, Андрей! Спасибо за ваши видео! С вами и море по колено

  • @user-dw7gb5gd1g
    @user-dw7gb5gd1g2 жыл бұрын

    Спасибо за разбор, ждем еще практических задач!

  • @luckyman9325
    @luckyman9325 Жыл бұрын

    У Вас дар обучения! Благодарю!

  • @artur_alf
    @artur_alf8 ай бұрын

    привет, Андрей Сазыкин. Классный голос

  • @Dragoncheg
    @Dragoncheg2 жыл бұрын

    Спасибо за старания. Замотивировали порешать задачи на LeetCode.

  • @AndreySozykin

    @AndreySozykin

    2 жыл бұрын

    Отлично, успехов на LeetCode!

  • @at0m1x191919
    @at0m1x1919192 жыл бұрын

    Отличный материал. Спасибо!

  • @AndreySozykin

    @AndreySozykin

    2 жыл бұрын

    Пожалуйста!

  • @TwixMen26
    @TwixMen2610 ай бұрын

    Супер, разобрался, спасибо большое!

  • @nielsbohr7322
    @nielsbohr73222 жыл бұрын

    Отлично! Спасибо Андрей!

  • @AndreySozykin

    @AndreySozykin

    2 жыл бұрын

    Пожалуйста!

  • @Kitty2009Stuttgar
    @Kitty2009Stuttgar Жыл бұрын

    спасибо большое за пошаговые обьяснения

  • @user-vx2kx6oe6l
    @user-vx2kx6oe6l2 жыл бұрын

    Большое спасибо, Андрей ... :)

  • @AndreySozykin

    @AndreySozykin

    2 жыл бұрын

    Пожалуйста!

  • @worlzpnz
    @worlzpnz2 жыл бұрын

    Спасибо, очень помогли!!!

  • @MarchelloCSKAMoscow
    @MarchelloCSKAMoscow2 жыл бұрын

    Здравствуйте! Подскажите , в какой среде разработки вы писали скрипт?

  • @GT-cv3xu
    @GT-cv3xu2 жыл бұрын

    Спасибо за замечательные видео, учусь по ним с удовольствием! У Вас суперская подача! Было б круто если б было больше видосиков по решанию задач в Литкоде

  • @AndreySozykin

    @AndreySozykin

    2 жыл бұрын

    Спасибо! Про Leetcode еще буду записывать видео.

  • @SergMirny_yt
    @SergMirny_yt2 жыл бұрын

    Спасибо Вам

  • @user-we8if9zu6w
    @user-we8if9zu6w2 жыл бұрын

    Добрый день! Спасибо за подробный разбор) Подскажите, если аналогичную задачу пришлось бы выполнять в реальных целях с использованием MySQL всегда используют такую хитрость для данной СУБД?

  • @AndreySozykin

    @AndreySozykin

    2 жыл бұрын

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

  • @MegaScorpi
    @MegaScorpi Жыл бұрын

    А возможно ли, чтобы не делать второй подзапрос, дать сразу псевдоним для первого? По моему я так делала, хотя могу и ошибаться. Большое спасибо!

  • @mikisor4372
    @mikisor43722 жыл бұрын

    Браво!

  • @AndreySozykin

    @AndreySozykin

    2 жыл бұрын

    Спасибо!

  • @raff_m_d6971
    @raff_m_d69712 жыл бұрын

    Спасибо

  • @WhiteBear141981
    @WhiteBear1419812 жыл бұрын

    Круто!

  • @AndreySozykin

    @AndreySozykin

    2 жыл бұрын

    Спасибо!

  • @vitalikos2010
    @vitalikos20102 жыл бұрын

    Спасибо.

  • @AndreySozykin

    @AndreySozykin

    2 жыл бұрын

    Пожалуйста!

  • @evf7377
    @evf7377 Жыл бұрын

    Имхо, довольно сложносоставленный запрос. В обсуждениях на том же leetcode к задаче есть более короткие варианты. Хотя конечно быстрее 91+% решений это интересно.

  • @pompei2
    @pompei22 жыл бұрын

    А если в таблице миллионы записей, то NOT IN ботает очень медленно. Чтобы ускорить нужно делать join и использовать функцию "row_number() over" и проиндексировать email

  • @AndreySozykin

    @AndreySozykin

    2 жыл бұрын

    Спасибо за комментарий, все правильно. Но, к сожалению, начинающим невозможно рассказать все это за один раз. Поэтому разбиваю на небольшие части с сознательным упрощением. Возможно, имеет смысл сделать отдельный плейлист об оптимизации производительности и рекомендуемых практиках работы с данными в миллионы строк.

  • @user-vo1rs9bb1l
    @user-vo1rs9bb1l29 күн бұрын

    литкоуууууд)))))))

  • @AndreySozykin

    @AndreySozykin

    28 күн бұрын

    да!

  • @MrNagios
    @MrNagios2 жыл бұрын

    а если дубликатов больше одного?

  • @AndreySozykin

    @AndreySozykin

    2 жыл бұрын

    Удалятся все, кроме email с наименьшим ID.

  • @gabrielvrabie7948
    @gabrielvrabie7948 Жыл бұрын

    Select distinct ID, email From Person

  • @nevil_ras

    @nevil_ras

    7 ай бұрын

    Не верно решили вы !

  • @user-xt3tv3vu7w
    @user-xt3tv3vu7w3 ай бұрын

    Нихуя не понял, но очень интересно

  • @crunchydanger4254
    @crunchydanger4254 Жыл бұрын

    DELETE FROM `oc_product` WHERE `product_id` NOT IN (SELECT * FROM (SELECT MIN(`product_id`) FROM `oc_product` GROUP BY `sku`) AS `oc_product_de`) oc_product - имя вашей таблицы product_id - столбец с уникальным идентификатор (если такого нет, нужно создать а потом удалить) sku - столбец в котором дубли oc_product_de - любое слово "как удалить дубли товаров opencart"

Келесі