DISTINCT в SQL: удаление дубликатов

DISTINCT

Часто бывает, что в результирующей таблице строки могут повторяться. Например, если мы напишем:

select
    club
from
    fifa_players_2018

Результатом будет вся колонка club, где клубы будут дублироваться:

Чтобы получить уникальные значения, нужно после SELECT добавлять оператор DISTINCT:

select
    distinct
    club
from
    fifa_players_2018

После выполнения запроса обратите внимание на то, как поменялось значение переменной rows - количество строк (под таблицей):

Пару важных примечаний:

  1. Как вы могли заметить, что оператор DISTINCT в  запросе может быть написан только 1 раз, потому что он всегда применяется ко всем указанным столбцам в запросе. Его нельзя использовать отдельно для конкретной колонки в рамках одного запроса. потому что он выводит не колонки с уникальными значениями, а уникальные строки в целом. Это означает, что строка удалится, если она повторяет другую одновременно по всем колонкам.
  2. Следует подчеркнуть, что использование DISTINCT на больших таблицах может быть ресурсоёмким процессом, особенно если таблица содержит миллионы строк. Поэтому, если вы знаете, что дублей изначально в таблице нет, или вам не принципиально удалять сейчас дубли, то не используйте  DISTINCT