SELECT SQRT(9) AS sqrt_9,
POWER(2, 10) AS pow_2_10,
ROUND(EXP(1), 4) AS e;
Результат:
sqrt_9 | pow_2_10 | e
3 | 1024 | 2.7183
SELECT ROUND(EXP(AVG(LN(growth))) - 1, 4) AS geo_mean_growth
FROM (
SELECT 1.10 AS growth UNION ALL
SELECT 1.25 UNION ALL
SELECT 0.95
) g;
Результат:
geo_mean_growth
0.0938
SELECT ROUND(
SQRT(AVG(POWER(actual_total - expected_total, 2))),
2) AS rmse
FROM orders;
Результат:
rmse 78.44Порешать SQL-задачи в тренажёре →
Всплывает в задачах на CAGR, среднее геометрическое, стандартное отклонение и RMSE — там, где нужны степени и корни. POWER часто идёт в паре с SQRT (сумма квадратов → корень) и с LN/EXP (логарифмические преобразования выручки).
Это одно и то же возведение в степень, но оператор ^ есть только в PostgreSQL: 2 ^ 10. В MySQL и SQLite оператора ^ для степени нет (в некоторых диалектах ^ вообще означает побитовый XOR), поэтому переносимый вариант — функция POWER() или её синоним POW(). Для кроссдиалектного кода всегда пишите POWER.
В PostgreSQL это ошибка выполнения, и запрос упадёт. В MySQL и SQLite SQRT отрицательного вернёт NULL, не прерывая запрос. Чтобы не ловить ошибку в PostgreSQL, отфильтруйте отрицательные заранее через WHERE или CASE, либо работайте с ABS.
Да, но это функции математического расширения, появившегося в SQLite 3.35 (2021) и включаемого флагом сборки SQLITE_ENABLE_MATH_FUNCTIONS. В официальных предсобранных бинарниках оно активно, так что pow()/power(), sqrt(), exp() и ln() доступны. В кастомной сборке без математики этих функций может не быть — в отличие от ядерных ABS и ROUND.
STRING_AGG · COUNT · SUM OVER · ROUND · UPPER / LOWER · LENGTH
Открыть SQL-тренажёр (565 задач) →