Ответ
В SQL для этого используются операторы DISTINCT или GROUP BY.
Использование DISTINCT
Оператор DISTINCT убирает дубликаты из результирующего набора.
-- Уникальные значения одного столбца
SELECT DISTINCT department FROM employees;
-- Уникальные комбинации нескольких столбцов
SELECT DISTINCT department, job_title FROM employees;
Использование GROUP BY
GROUP BY также возвращает уникальные значения, но его основная цель — агрегация. Для простого получения уникальных значений он избыточен, но корректен.
SELECT department FROM employees GROUP BY department;
Ключевые отличия:
DISTINCTприменяется ко всем полям вSELECTи удаляет дубликаты строк.GROUP BYгруппирует строки по указанным столбцам и позволяет использовать агрегатные функции (COUNT,SUM,AVG).
Пример с агрегацией (где GROUP BY необходим):
-- Получить количество сотрудников в каждом уникальном отделе
SELECT department, COUNT(*) as employee_count
FROM employees
GROUP BY department;
В Python (с использованием pandas):
import pandas as pd
import sqlite3
conn = sqlite3.connect('database.db')
# Через SQL запрос
unique_sql = pd.read_sql_query('SELECT DISTINCT department FROM employees', conn)
# Или через метод pandas
df = pd.read_sql('SELECT * FROM employees', conn)
unique_pandas = df['department'].unique().tolist()