Иллюстрированный самоучитель по PostgreSQL

Агрегатные функции

stddev()

Синтаксис:

stddev(выражение)

Функция stddev () получает выражение, описывающее значения любого числового типа (numeriс, bigint, smallint, real или double precision), и возвращает среднеквадратичное отклонение для группы. Для вещественных выражений результат возвращается в виде значения типа double precision, а для остальных типов – в виде значения типа numeric.

Примеры:

booktown=# SELECT stddev(retail) FROM stock;
stddev
8.46
(1 row)

booktown=# SELECT stddev(retail), p.name
booktown-# FROM (stock NATURAL JOIN editions)
booktown-# JOIN publishers AS p ON (publisheMd = p.id)
booktown-# GROUP BY p.name
booktown-# ORDER BY stddev DESC
booktown-# LIMIT 4:
stddev | name
16.97 | Ace Books
16.97 | Roc 8.02 Random House
5.66 | Doubleday
(4 rows)

sum()

Синтаксис:

sum (выражение)

Функция sum() получает выражение, описывающее значения любого числового типа (numeric, bigint, smallint, real или double precision), и возвращает сумму значений в группе. Для выражений типа integer результат возвращается в виде значения типа numeric, а для выражений типа real – в виде значения типа double precision. В остальных случаях тип возвращаемого значения совпадает с типом выражения.

Примеры:

booktown=# SELECT sum(stock) FROM stock;
sum
"BOB"
(1 row)

booktown=# SELECT sum(stock) .s.subject
booktown-# FROM ((stock NATURAL JOIN editions)
booktown(# JOIN books ON (books.id = bookjd))
booktown-f JOIN subjects AS s
booktown-# ON (books.subject_id = s.id)
booktown-# GROUP BY s.subject
booktown-# ORDER BY sum DESC;
189 | Horror
166 I Science Fiction
91 | Children's Books
28 | Drama
18 | Classics
16 | Arts
(6 rows)

variance()

Синтаксис:

variance(выражение)

Функция variance() получает выражение, описывающее значения любого числового типа (numeric, bigint, smallint, real или double precision), и возвращает дисперсию для группы (stddev() в квадрате). Для вещественных выражений результат возвращается в виде значения типа double precision, а для остальных типов – в виде значения типа numeric.

Примеры:

booktown=# SELECT variance(retaiT) FROM stock;
variance
71.60
(1 row)

booktown=# SELECT varianceCretail), p.name
booktown-# FROM (stock NATURAL JOIN editions)
booktown-# JOIN publishers AS p
booktown-# ON (editions.pub!isher_id = p.id)
booktown-# GROUP BY p.name
booktown-# ORDER BY variance DESC
booktown-# LIMIT 4: variance name
288.00 | Ace Books 288.00 I Roc 64.33!
Random House 32.00 | Doubleday
(4 rows)
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.