День 4/30: Як видаляти дублікати з таблиці в SQL

Ласкаво просимо назад до серії з 30 інтерв'ю з SQL! У цьому пості ми поглибимося в одну з найпоширеніших задач при роботі з базами даних: видалення дублікатів. Це критична навичка для будь-якого SQL-розробника, оскільки дублікати можуть призвести до помилок, неефективних запитів і неточних результатів.

Якщо вам потрібно видалити дублікати, зберігши певний рядок, ви можете скористатися оператором GROUP BY. Цей метод дозволяє згрупувати записи за однією або кількома колонками та зберегти один рядок з кожної групи.

Приклад: Видалення дублікатів з збереженням рядка з мінімальним id

pic

Припустимо, у вас є наведеній набір даних, і ви хочете видалити дублікати за колонками name, age та city, але хочете зберегти рядок з мінімальним значенням id.

pic

  • MIN(id) гарантує, що буде збережений лише рядок з найменшим значенням id для кожної групи.
  • Оператор GROUP BY name, age, city групує рядки за унікальною комбінацією name, age та city.
  • Оператор DELETE видаляє рядки, де id не є мінімальним для цієї групи.

Результат:

Після виконання запиту в таблиці залишаються лише унікальні рядки.

Перекладено з: Day 4/30: How to Remove Duplicates from a Table in SQL

Leave a Reply

Your email address will not be published. Required fields are marked *