Бесконечность, минус бесконечность, не число

«Пост-Грэс-Кью-Эл» свободная объектно-реляционная СУБД. Обмениваемся вопросами и ответами о её работе.
Ответить
AntonS
Сообщения: 86
Зарегистрирован: Пт июн 03, 2022 8:51 am

Бесконечность, минус бесконечность, не число

Сообщение AntonS »

Кроме обычных значений, числовой тип numeric принимает следующие специальные значения:

Infinity Бесконечность
-Infinity Минус бесконечность
NaN Не число

Код: Выделить всё

demo=# CREATE TABLE TEST (id INT, big_number NUMERIC);
CREATE TABLE
demo=# INSERT INTO test (id, big_number) VALUES (1, 'Inf');
INSERT 0 1
demo=# INSERT INTO test (id, big_number) VALUES (2, 0);
INSERT 0 1
demo=# INSERT INTO test (id, big_number) VALUES (3, '-Inf');
INSERT 0 1
demo=# SELECT * FROM test;
 id | big_number
----+------------
  1 |   Infinity
  2 |          0
  3 |  -Infinity
(3 rows)
Функции MIN/MAX для столбца, содержащего специальные значения работают, но вычислить среднее значение или сумму не получится, они вернут не число:

Код: Выделить всё

demo=# SELECT MAX(big_number), AVG(big_number), MIN(big_number), SUM(big_number) FROM test;
   max    | avg |    min    | sum
----------+-----+-----------+-----
 Infinity | NaN | -Infinity | NaN
(1 row)
Ответить