Математические функции

Простейшие арифметические операции (+ - * /)

PostgreSQL позволяет выполнять простейшие арифметические операции. В качестве операндов могут выступать числовые константы, значения столбцов таблиц, результаты выполнения подзапросов, возвращающих одну строку.

Сложение

Для сложения двух значений достаточно поставить + между ними:

SELECT 1 + 2 AS result
#result
13

Можно писать выражения посложнее:

SELECT 1 + 2 + 3 AS result
#result
16

Вычитание

SELECT 3 - 2 AS result
#result
11
SELECT 2 - 3 AS result
#result
1-1

Определим, на сколько цена товара в магазине отличается от минимальной цены на этот товар по всем магазинам:

SELECT pp.product_id,
       pp.store_id,
       pp.price,
       pp.price - (
         -- минимальная цена на продукт
         SELECT min (ppa.price)
           FROM product_price ppa
          WHERE ppa.product_id = pp.product_id
       ) AS diff_min
  FROM product_price pp
 ORDER BY pp.product_id, pp.price
#product_idstore_idpricediff_min
1130010500.000.00
2180012000.001500.00
3130112500.002000.00
4250026100.000.00
5260027500.001400.00
6350022000.000.00
...............

Умножение

SELECT 3 * 3 AS result
#result
19
SELECT 3 * 9 AS result
#result
127

Определим размер 25% скидки от стоимости товара

SELECT pp.product_id,
       pp.store_id,
       pp.price,
       pp.price * 0.25 AS discount
  FROM product_price pp
 ORDER BY pp.product_id,
       pp.store_id
#product_idstore_idpricediscount
1130010500.002625.0000
2130112500.003125.0000
3180012000.003000.0000
4250026100.006525.0000
...............

Деление

SELECT 27 / 3 AS result
#result
19

Определим четверть стоимости товара

SELECT pp.product_id,
       pp.store_id,
       pp.price,
       pp.price / 4 AS discount
  FROM product_price pp
 ORDER BY pp.product_id,
       pp.store_id
#product_idstore_idpricediscount
1130010500.002625.0000
2130112500.003125.0000
3180012000.003000.0000
4250026100.006525.0000
...............
ПредыдущаяСледующая