SQRT(x) 返回 x 的平方根,參數需為非負數,返回 DOUBLE 類型。本文展示純量計算與表列計算兩種場景。
mysql> SELECT SQRT(16); +----------+ | SQRT(16) | +----------+ | 4.000000 | +----------+
返回浮點數,即使結果為整數。
對 employee_tbl 每行計算平方根:
mysql> SELECT name, SQRT(daily_typing_pages) FROM employee_tbl; +------+--------------------------+ | name | SQRT(daily_typing_pages) | +------+--------------------------+ | John | 15.811388 | | Ram | 14.832397 | | Jack | 13.038405 | | Jack | 10.000000 | | Jill | 14.832397 | | Zara | 17.320508 | | Zara | 18.708287 | +------+--------------------------+
雖然 MySQL 有 STDDEV(),但理解平方根是統計計算基礎:
SELECT
name,
AVG(daily_typing_pages) AS avg_val,
SQRT(AVG(daily_typing_pages * daily_typing_pages) - AVG(daily_typing_pages) * AVG(daily_typing_pages)) AS stddev_manual
FROM employee_tbl
GROUP BY name;
NULL 並產生警告。NULL 返回 NULL。DECIMAL 手動實現或應用層處理。