数値関数の使い方
数を丸める・計算する
書き方
ROUND(x, 桁) TRUNC(x, 桁) CEIL(x) FLOOR(x) ABS(x) MOD(a, b) POWER(a, b)
ROUND は四捨五入、TRUNC は切り捨て、CEIL は切り上げ。整数どうしの割り算は小数が切り捨てられます。
よく使うオプション
| オプション | 意味 |
|---|---|
ROUND(x, 桁) | 四捨五入する |
TRUNC(x, 桁) | 切り捨てる |
CEIL(x) / FLOOR(x) | 切り上げて整数に / 切り下げて整数に |
ABS(x) | 絶対値 |
MOD(a, b) | a を b で割った余り |
例
SELECT ROUND(AVG(salary), 0) FROM employees; round
--------
310000
(1 row)給与の平均を、四捨五入して整数にします。
SELECT ROUND(1234.567, 1), TRUNC(1234.567, 1), ROUND(1234.567, -2); round | trunc | round
--------+--------+-------
1234.6 | 1234.5 | 1200
(1 row)小数 1 けたで四捨五入・切り捨てし、最後は 100 の位で四捨五入します。桁にマイナスを書くと整数の位で丸めます。
SELECT CEIL(7 / 3.0) AS pages; pages
-------
3
(1 row)7 件を 3 件ずつ分けると何ページ要るかを、切り上げで出します。
SELECT id FROM orders WHERE MOD(id, 2) = 0;
番号が偶数の注文だけを出します。
よくある間違い・注意
- 整数どうしの割り算は小数が切り捨てられます(7 / 2 は 3)。小数が欲しいときは 7 / 2.0 や CAST を使います。
- MySQL では 7 / 2 が 3.5 になるなど、割り算の結果はデータベースによって違います。
実際に打って練習する
SQL コースの Lv15「数の関数」で覚えます。ブラウザの中のシミュレーターで、本物と同じように打って確かめられます。
Lv1〜3 は、登録不要・無料で遊べます(それより先はブロンズ以上のプランで遊べます)。