Видалення дублікатів і ключове слово DISTINCT
Необов'язкове ключове слово DISTINCT виключає дублікати з підсумкового набору. Якщо ключове слово ON відсутня, з результатів запиту з ключовим словом DISTINCT виключаються записи з повторюваними значеннями цільових полів. Перевіряються лише поля, що входять до цільової список SELECT.
Лістинг 4.31. Ключове слово DISTINCT.
У другому запиті використана інша форма DISTINCT з явним перерахуванням полів (або виразів), що перевіряються на наявність дублікатів. У цьому випадку запит також повертає 13 записів, оскільки секція ON вказує, що дублікати перевіряються за значенням поля author_i d. Без секції ON запит верн) і б всі 15 записів, оскільки за замовчуванням PostgreSQL перевіряє повний збіг всіх полів.
У загальному випадку PostgreSQL вибирає записи, що виключаються з підсумкового набору при наявності секції ON, на свій розсуд. Якщо в запит разом з DISTINCT входить секція ORDER BY, ви можете самостійно задати порядок вибірки полів так, щоб потрібні записи виявилися на початку. Сортування записів розглядається в підрозділі "Сортування записів".
Якщо замість виключення всіх дублікатів досить згрупувати записи з повторюваними значеннями деякого критерію, скористайтеся секцією GROUP BY, описаної в підрозділі "Угруповання записів".
НАШІ ПРОЕКТИ
- Навігатор в океані ароматів