Агрегатные функции
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)