SQLсервер в Linux -самостоятельное освоение пакета

       

Использование секции DISTINCT с ORDER BY



Листинг 4.44. Использование секции DISTINCT с ORDER BY

booktown=# SELECT DISTINCT ON (edition)

booktown-# edition, publication

booktown-# FROM editions

booktown-# ORDER BY edition ASC,

booktown-# publication DESC;

edition | publication

1 | 1995-03-28

2 | 2001-03-01

3 | 2000-09-12

(3 rows)

booktown=# SELECT edition, max(publication)

booktown-# FROM editions

booktown-# GROUP BY edition;

edition | max

1 | 1995-03-28

2 | 2001-03-01

3 | 2000-09-12

(3 rows)

Поскольку секция ORDER BY обрабатывается перед удалением дубликатов ключевым словом DISTINCT, общий эффект очень похож на вызов агрегатной функции max() или min() в секции GROUP BY. Подобная методика бывает чрезвычайно эффективной, хотя все зависит от сложности агрегирования и сортировки.

Примечание 1



Примечание 1

Вместо имен полей или выражений секция ORDER BY может содержать целочисленные константы. Такие константы интерпретируются как номера позиций в целевом списке; отсчет ведется слева направо, начиная с 1. Таким образом, ORDER BY 1 ASC означает сортировку по первому полю итогового набора.



Содержание раздела