丸めと切り捨て
ROUND、CEIL、FLOOR、TRUNCを学びます。
「丸めと切り捨て」はCoddyKit上の無料SQL Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはSQL Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 SQL Academyコースには全4レッスンが含まれています。
丸めが重要な理由
SQL で数値を扱っていると、小数点以下の桁数が多い結果になることがあります。たとえば、10 を 3 で割ると 3.3333333... になります。
SQL には、表示または保存する小数点以下の桁数を調整する組み込み関数として、ROUND、CEIL、FLOOR、TRUNC があります。これらは、見やすい金額、測定値、統計値を表示するために欠かせません。
SELECT 10.0 / 3.0 AS raw_result;ROUND: 基本的な使い方
ROUND() 関数は、指定した小数点以下の桁数に数値を丸めます。一般的な丸め規則に従い、5以上の数字は切り上げ、5未満の数字は切り下げます。
構文は ROUND(number, decimal_places) です。2つ目の引数を省略すると、最も近い整数に丸められます。
SELECT
ROUND(3.14159, 2) AS two_decimals,
ROUND(3.14159, 0) AS zero_decimals,
ROUND(3.14159) AS no_arg;負の桁数を指定した ROUND
ROUND() のあまり知られていない機能として、2つ目の引数に 負の数 を渡す方法があります。これにより、小数点の左側の桁で丸められます。十の位、百の位、千の位などで丸める場合に便利です。
たとえば、ROUND(1567, -2) は百の位に丸められ、1600 になります。
SELECT
ROUND(1567.89, -1) AS nearest_ten,
ROUND(1567.89, -2) AS nearest_hundred,
ROUND(1567.89, -3) AS nearest_thousand;CEIL: 常に切り上げる
CEIL()(データベースによっては CEILING() とも表記されます)は、小数部分に関係なく、数値を常に最も近い大きい整数へ切り上げます。
最低限必要な量を下回らないようにしたい場合に便利です。たとえば、結果一式を表示するために必要なページ数の計算などに使えます。
SELECT
CEIL(4.1) AS ceil_4_1,
CEIL(4.9) AS ceil_4_9,
CEIL(-4.1) AS ceil_neg_4_1,
CEIL(-4.9) AS ceil_neg_4_9;FLOOR: 常に切り下げる
FLOOR() は、小数部分に関係なく、数値を常に最も近い小さい整数へ切り下げます。
負の数では、FLOOR はゼロから遠ざかる方向に丸めることに注意してください。FLOOR(-4.1) は -4 ではなく -5 になります。これは、初心者が予想することのある動作とは逆です。
SELECT
FLOOR(4.9) AS floor_4_9,
FLOOR(4.1) AS floor_4_1,
FLOOR(-4.1) AS floor_neg_4_1,
FLOOR(-4.9) AS floor_neg_4_9;CEIL と FLOOR を比較する
CEIL と FLOOR を並べて見ると、違いを簡単に理解できます。CEIL は常に次の整数へ切り上げ、FLOOR は常に下の整数へ切り下げます。
建物にたとえると、FLOOR は落ち着く地上階で、CEIL は上っていく天井です。
SELECT
2.3 AS original,
CEIL(2.3) AS ceil_result,
FLOOR(2.3) AS floor_result
UNION ALL
SELECT
7.8,
CEIL(7.8),
FLOOR(7.8);TRUNC: 丸めずに切り取る
TRUNC()(MySQL では TRUNCATE())は、丸め処理をせずに小数桁を削除します。指定した位置より後ろの桁をそのまま切り落とします。
これは ROUND とは異なります。TRUNC(4.9) は 5 ではなく 4 になります。小数部分がそのまま破棄されるためです。
SELECT
TRUNC(4.9) AS trunc_4_9,
TRUNC(4.1) AS trunc_4_1,
TRUNC(-4.9) AS trunc_neg_4_9,
TRUNC(3.14159, 3) AS trunc_3_decimals;ROUND と TRUNC の比較
ROUND と TRUNC の主な違いは、ROUND が次の桁に基づいて値を変更するのに対し、TRUNC は切り取る位置より後ろを調整せずに常に破棄することです。
数学的に最も近い値にしたい場合は ROUND を使います。値を増やさずに精度だけを厳密に削除したい場合は TRUNC を使います。支払い額を決して過大にしない必要がある金融計算などでよく使われます。
SELECT
ROUND(2.567, 1) AS rounded,
TRUNC(2.567, 1) AS truncated;
-- ROUND gives 2.6 (5 rounds up)
-- TRUNC gives 2.5 (just cuts off)実際のテーブルで ROUND を使う
丸め関数は、テーブルの列に適用すると特に効果を発揮します。ここでは、価格を持つ単純な products テーブルを作成し、ROUND を使って見やすく表示します。
このパターンは、計算結果の小数点以下の桁数が多くなりやすい eコマースや会計のクエリで非常によく使われます。
CREATE TABLE products (
name TEXT,
price NUMERIC
);
INSERT INTO products VALUES
('Widget', 9.999),
('Gadget', 24.3333),
('Doohickey', 4.5678);
SELECT name, ROUND(price, 2) AS display_price
FROM products;クエリで関数を組み合わせる
丸め関数は、他の SQL 式と組み合わせることができます。たとえば、割引価格を計算してから、表示用に丸めることができます。
このクエリは 15% の割引を適用し、結果を小数点以下2桁に丸めます。さらに、割引後の価格に対する FLOOR と CEIL も表示するため、最小と最大の整数価格を確認できます。
SELECT
name,
price,
ROUND(price * 0.85, 2) AS discounted,
FLOOR(price * 0.85) AS min_price,
CEIL(price * 0.85) AS max_price
FROM products;CEIL でページ数を計算する
CEIL の典型的な用途は、ページネーションシステムで総ページ数を計算することです。97行あり、1ページに10行表示する場合は、CEIL(97 / 10.0) = 10 ページが必要です(最後のページに7行あるため、9ページではありません)。
CEIL が余りを処理できるように、必ず小数で割ってください(10 ではなく 10.0)。整数除算を使うと、CEIL が処理する前に余りが破棄されます。
SELECT
97 AS total_rows,
10 AS rows_per_page,
CEIL(97 / 10.0) AS total_pages;簡単な確認
SQL の丸め関数を理解できているか確認しましょう。
レッスンのまとめ
よくできました。ここでは、SQL の丸め関数と切り捨て関数をまとめます。
- ROUND(n, d) — 一般的な数学の規則(5以上は切り上げ)に従い、小数点以下 d 桁に丸めます。
- CEIL(n) — 常に最も近い大きい整数へ切り上げます。
- FLOOR(n) — 常に最も近い小さい整数へ切り下げます。
- TRUNC(n, d) — 丸めずに d 桁より後ろの数字を削除し、値を増加させません。
表示や統計には ROUND、ページ数のような最小容量の計算には CEIL、収まる最大数の計算には FLOOR、上方向に丸めてはいけない場合には TRUNC を使います。特に金融分野では TRUNC が重要です。
よくある質問
「丸めと切り捨て」レッスンは無料ですか?
はい。「丸めと切り捨て」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、SQL Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 SQL Academyコースには全4レッスンが含まれています。
「丸めと切り捨て」で何を学びますか?
ROUND、CEIL、FLOOR、TRUNCを学びます。 ブラウザで直接実行するハンズオンコードでSQL Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
SQL Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのSQL Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「丸めと切り捨て」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このSQL Academyレッスンでコードを書いて実行できますか?
はい。すべてのSQL Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。