Ответ
Для выборки уникальных значений из столбца или набора столбцов в SQL используется оператор DISTINCT.
Базовый синтаксис:
-- Вывести уникальные значения из одного столбца 'status'
SELECT DISTINCT status FROM orders;
-- Вывести уникальные комбинации значений из нескольких столбцов
SELECT DISTINCT customer_id, product_category FROM purchases;
Примеры с контекстом тестирования:
-
Проверка справочников или enum-полей:
-- Узнать, какие уникальные статусы заказов существуют в системе SELECT DISTINCT order_status FROM test_orders; -- Ожидаемый результат: 'NEW', 'PROCESSING', 'SHIPPED', 'DELIVERED', 'CANCELLED'Это помогает проверить, что в систему не попали некорректные или тестовые значения.
-
Поиск дубликатов (обратная задача):
-- Найти дублирующиеся email в таблице пользователей (тест на целостность данных) SELECT email, COUNT(*) as count FROM users GROUP BY email HAVING COUNT(*) > 1; -
Использование в подзапросе для подготовки тестовых данных:
-- Выбрать по одному уникальному товару из каждой категории для теста SELECT * FROM products WHERE id IN ( SELECT MIN(id) FROM products GROUP BY category_id -- Группировка для уникальности по категории );
Важно: DISTINCT применяется ко всем столбцам, перечисленным в SELECT. Для больших таблиц эта операция может быть ресурсоемкой.