スポンサーリンク

【SQL】TRUNC関数とは

記事内に広告が含まれています。

SQLのTRUNC関数は、数値や日付データを指定した精度で切り捨てるための関数です。

不要な小数部分や時刻情報を取り除くことで、データの整形や分析を簡単にします。


スポンサーリンク

数値データに対するTRUNC関数

TRUNC関数を数値に対して使用する場合、小数点以下の桁を切り捨てます。

必要に応じて切り捨てる桁数を指定できます。

構文

TRUNC(number [, precision])
  • number
    切り捨て対象の数値。
  • precision
    切り捨て後の小数点以下の桁数(省略可能)。
    省略した場合は0が指定されたとみなされ、小数点以下がすべて切り捨てられます。

使用例

小数点以下をすべて切り捨て

SELECT TRUNC(123.456) AS result;

結果

result
123

小数点以下を2桁に切り捨て

SELECT TRUNC(123.456, 2) AS result;

結果

result
123.45

小数点以下を−1桁で切り捨て(整数部分の位を切り捨て)

SELECT TRUNC(123.456, -1) AS result;

結果

result
120

スポンサーリンク

日付データに対するTRUNC関数

TRUNC関数は日付データにも使用可能で、指定した単位に基づいて時刻情報や日付の細かい部分を切り捨てます。

これにより、特定の期間でデータをグルーピングしたり分析を行ったりするのに便利です。

構文

TRUNC(date [, format])
  • date
    切り捨て対象の日付。
  • format
    切り捨てる単位を指定する文字列(省略可能)。デフォルトでは日単位で切り捨てられます。

主要なformatオプション

フォーマット説明
'YEAR'年の初め
'MONTH'月の初め
'DAY'日単位(デフォルト)
'HOUR'時単位
'MINUTE'分単位

使用例

デフォルト(日単位)で切り捨て

SELECT TRUNC(TO_DATE('2024-11-27 15:45:00', 'YYYY-MM-DD HH24:MI:SS')) AS result
FROM DUAL;

結果

result
2024-11-27

月単位で切り捨て

SELECT TRUNC(TO_DATE('2024-11-27 15:45:00', 'YYYY-MM-DD HH24:MI:SS'), 'MONTH') AS result
FROM DUAL;

結果

result
2024-11-01

年単位で切り捨て

SELECT TRUNC(TO_DATE('2024-11-27 15:45:00', 'YYYY-MM-DD HH24:MI:SS'), 'YEAR') AS result
FROM DUAL;

結果

result
2024-01-01

TRUNC関数の実用例

データ分析での活用

月単位の売上集計

日付データを月単位で切り捨てることで、月ごとの売上を簡単に集計できます。

SELECT TRUNC(sales_date, 'MONTH') AS sales_month,
       SUM(amount) AS total_sales
FROM sales
GROUP BY TRUNC(sales_date, 'MONTH');

整数部分のみを使用する計算

小数部分が不要な計算や処理に役立ちます。

SELECT employee_id, TRUNC(salary) AS base_salary FROM employees;

TRUNCと他の関数との違い

ROUNDとの比較

TRUNCとROUNDは類似していますが、挙動が異なります。

  • TRUNC
    指定した桁数で切り捨て。
  • ROUND
    指定した桁数で四捨五入。

SELECT TRUNC(123.456, 2) AS trunc_result,
       ROUND(123.456, 2) AS round_result
FROM DUAL;

結果

trunc_resultround_result
123.45123.46

注意点

  1. TRUNCはデータを切り捨てるため、元のデータの精度が失われます。
    精度が重要な場合は、元データをバックアップするか、加工後のデータを新しいカラムやテーブルに保存してください。
  2. 日付データのフォーマット指定は、使用するデータベースによって異なる場合があります(例: Oracle、PostgreSQLなど)。
    公式ドキュメントを確認することをお勧めします。

まとめ

TRUNC関数は、数値や日付データを指定した単位で切り捨てる便利な関数です。分析やデータ整形の場面で頻繁に使用されるため、基本的な使い方を理解しておくことは非常に重要です。ROUNDとの違いを押さえつつ、実務で活用してみてください。

スポンサーリンク
SQL
著者SNS
タイトルとURLをコピーしました