Числастандарт SQL

POWER

Підносить число до степеня.

Синтаксис

POWER(<число>, <степінь>)
<число> ^ <степінь>

POWER(2, 10) дає 1024. Степінь може бути дробовим чи від'ємним: POWER(9, 0.5) — те саме, що квадратний корінь, а POWER(2, -1) — половина. Для самого кореня є коротша функція SQRT.

Цілий, дробовий і від'ємний степінь
SELECT POWER(2, 10) AS power_of_two,
POWER(9, 0.5) AS square_root,
POWER(2, -1) AS half;
power_of_twosquare_roothalf
10243.00000000000000000.5
Складні відсотки
SELECT ROUND(1000 * POWER(1.05, 3), 2) AS after_3_years;
after_3_years
1157.63

1000 під 5 % річних: щороку сума множиться на 1.05, тож за три роки — на 1.05 у третьому степені.

Байти — у мегабайти
SELECT 5000000 / POWER(1024, 2) AS megabytes;
megabytes
4.76837158203125

У мегабайті 1024 · 1024 байтів — тобто 1024 у другому степені.

Зверни увагу

Цілі аргументи дають double precision, а з ним — похибки: POWER(1.1::float8, 2) дає 1.2100000000000002. З дробовим літералом рахується в numeric, і POWER(1.1, 2) дає рівно 1.21.

^ теж підносить до степеня: 2 ^ 10. А 2 ** 10, як у деяких мовах програмування, дасть помилку operator does not exist.

Від'ємне число в дробовому степені — помилка: POWER(-8, 1.0 / 3) скаже a negative number raised to a non-integer power yields a complex result.

Схожі функції