以下のように、顧客ごとの生年月日が登録されたテーブルがあるとする。

今回はこのようなテーブルから、生年月日を用いて現在の年齢を算出する方法を紹介する。

まずは完成形のクエリを見ていこう。

SELECT
	customer_name
	, customer_birthday
	, (current_date - customer_birthday) / 365 as age
FROM
	access_log_wide
;

このクエリを実行すると以下の結果が得られる。

ポイントはコード4行目。
まず、current_date式を使って現在の日付と生年月日の差を算出する。
これにより生年月日から現在までの日数が分かるので、後は年齢を割り出すために日数を365日で割ることで、現在の年齢が分かる。

厳密には閏年の関係で正確な計算式ではないが、この程度の誤差であれば分析上そう困ることはないだろう。