Как получить уникальные значения из данных в SQL, Python и командной строке Linux?

«Как получить уникальные значения из данных в SQL, Python и командной строке Linux?» — вопрос из категории Базы данных и SQL, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

SQL: Используйте ключевое слово DISTINCT в запросе SELECT.

-- Выбрать уникальные города из таблицы пользователей
SELECT DISTINCT city FROM users;
-- Уникальные комбинации города и страны
SELECT DISTINCT city, country FROM users;

Python (с Pandas): Используйте метод unique() для Series или drop_duplicates() для DataFrame.

import pandas as pd
# Для Series
series = pd.Series([1, 2, 2, 3, 3, 3])
print(series.unique())  # array([1, 2, 3])

# Для DataFrame
df = pd.DataFrame({'A': [1, 1, 2], 'B': [3, 3, 4]})
unique_rows = df.drop_duplicates()

Python (чистый): Преобразуйте список в множество (set) или используйте dict.fromkeys() для сохранения порядка.

my_list = [1, 2, 2, 3]
unique_unordered = list(set(my_list))  # [1, 2, 3] (порядок может быть любым)
unique_ordered = list(dict.fromkeys(my_list))  # [1, 2, 3] (порядок сохранён)

Командная строка Linux: Комбинация sort и uniq. uniq удаляет только идущие подряд дубликаты, поэтому предварительная сортировка обязательна.

# Получить уникальные строки из файла
sort file.txt | uniq
# Посчитать количество вхождений каждой уникальной строки
sort file.txt | uniq -c