Агрегатные функции
avg()
Синтаксис:
avg (выражение)
Функция avg() получает агрегатное выражение, результат которого относится к любому из числовых типов (numeric, bigint, smallint, real или double precision) или к типу interval.
Функция возвращает среднее арифметическое всех данных, описываемых выражением. Возвращаемое значение относится к типу numeric для выражения типа integer или к типу double precision для выражения типа real. В остальных случаях тип возвращаемого значения совпадает с типом выражения.
Примеры:
booktown=# SELECT avg(cost) AS average_cost, booktown-# avg(retail) AS average_price, booktown-# avg(retail – cost) AS average_profit booktown-# FROM stock: average_cost | average_price | average_prof1t 24.8235294118 | 30.0088235294 5.1852941176 (1 row) booktown=# SELECT avg(cost) AS average_cost, p.name AS publisher booktown-# FROM stock JOIN editions USING (isbn)) booktown-l JOIN publishers AS p (publisheMd) booktown-# USING (publisheMd) booktown-# GROUP BY p.name; average_cost | publisher 26.5000000000 | Ace Books 19.0000000000 | Books of Wonder 26.5000000000 I Doubleday 25.0000000000 | HarperCollins 18.0000000000 | Henry Holt & Company. Inc. 23.0000000000 I Kids Can Press 23.0000000000 | Mojo Press 20.0000000000 I Penguin 23.0000000000 Random House 26.5000000000 | Roc 26.0000000000 | Watson-Guptill Publications (11 rows)
count()
Синтаксис:
count(выражение)
Функция count() возвращает количество значений, для которых выражение отлично от NULL. Тип выражения не ограничивается. Следует помнить, что функция count () подсчитывает только значения, отличные от NULL, поэтому для получения осмысленных результатов используемое выражение не должно возвращать NULL для подсчитываемых записей.
Если при вызове count() передается символ *, функция просто подсчитывает все записи, в том числе и содержащие NULL.
Примеры:
booktown=# SELECT countC*) FROM editions; count 17 (1 row) booktown=# SELECT count(isbn) .p.name booktown-# FROM editions JOIN publishers AS p (publisheMd) booktown-# USING (publisheMd) booktown-# GROUP BY p.name booktown-# ORDER BY count DESC; count | name 3 | Random House 2 | Ace Books 2 | Doubleday 2 Roc 1 | Books of Wonder 1 | HarperCollins 1 | Henry Holt & Company. Inc. 1 | Kids Can Press 1 | Mojo Press 1 | O'Reilly & Associates 1 | Penguin 1 | Watson-Gupti11 Publications (12 rows)