Númerosestándar SQL

POWER

Eleva un número a una potencia.

Sintaxis

POWER(<número>, <exponente>)
<número> ^ <exponente>

POWER(2, 10) da 1024. El exponente puede ser decimal o negativo: POWER(9, 0.5) equivale a la raíz cuadrada, y POWER(2, -1) es la mitad. Para la raíz en sí hay una función más corta, SQRT.

Exponente entero, decimal y negativo
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
Interés compuesto
SELECT ROUND(1000 * POWER(1.05, 3), 2) AS after_3_years;
after_3_years
1157.63

1000 al 5 % anual: cada año el importe se multiplica por 1.05, así que en tres años se multiplica por 1.05 elevado a la tercera.

De bytes a megabytes
SELECT 5000000 / POWER(1024, 2) AS megabytes;
megabytes
4.76837158203125

Un megabyte tiene 1024 · 1024 bytes, es decir, 1024 elevado a la segunda.

Ten en cuenta

Con argumentos enteros el resultado es double precision y, con él, llegan los errores de redondeo: POWER(1.1::float8, 2) da 1.2100000000000002. Con un literal decimal el cálculo se hace en numeric, y POWER(1.1, 2) da exactamente 1.21.

^ también eleva a una potencia: 2 ^ 10. Pero 2 ** 10, como en algunos lenguajes de programación, da el error operator does not exist.

Un número negativo elevado a un exponente decimal es un error: POWER(-8, 1.0 / 3) dice a negative number raised to a non-integer power yields a complex result.

Funciones relacionadas