【SparkSQL】日付を週変換する

SQL
※本ページにはプロモーションが含まれます
※本ページにはプロモーションが含まれます
スポンサーリンク

Dailyのデータを週次で集計したい、、

本記事を見に来ていただいた方はそのようなお悩みをお持ちではないでしょうか?
それを解決できるのがWEEKOFYEAR関数になります。

本記事ではそちらについて解説いたします。

WEEKOFYEAR関数についてはじめに

WEEKOFYEAR関数は、Spark SQLで日付に対してその年の週番号を計算するために使用されます。

この関数は、ISO 8601の週番号(週の始まりが月曜日)に基づいて計算を行います。
具体的には、年の最初の週はその年の最初の木曜日を含む週と定義されます。

WEEKOFYEAR関数の基本構文と使用例

WEEKOFYEAR関数の基本構文

SELECT WEEKOFYEAR('2023-05-19') AS week_number

このクエリは、’2023-05-19’の日付がその年の第何週に該当するかを計算し、結果を返します。

WEEKOFYEAR関数の使用例

以下に、サンプルデータを使用したSQLクエリとその結果を示します。

サンプルデータ

テーブル:sample_datesのカラム:dateに以下データが含まれているとします。

  • ‘2023-01-01’
  • ‘2023-05-19’
  • ‘2023-12-31’
  • ‘2024-01-01’
  • ‘2024-05-19’
  • ‘2024-12-31’

クエリの例

SELECT date, WEEKOFYEAR(date) AS week_number
FROM sample_dates

結果

以下がクエリの実行結果の例です。

dateweek_number
2023-01-0152
2023-05-1920
2023-12-3152
2024-01-011
2024-05-1920
2024-12-311

結果の解釈

  • ‘2023-01-01’: ISO 8601に基づいて計算されるため、2023年の1月1日は前の年の最終週(第52週)に含まれます。
  • ‘2023-05-19’: 2023年の第20週に該当します。
  • ‘2023-12-31’: 2023年の最終日も第52週に該当します。
  • ‘2024-01-01’: 2024年の1月1日は新年の最初の週(第1週)に該当します。
  • ‘2024-05-19’: 2024年の第20週に該当します。
  • ‘2024-12-31’: 2024年の最終日も第1週に該当します。これは2024年がうるう年であり、52週+2日の構成となり、12月31日が翌年の第1週として扱われるためです。

このように、WEEKOFYEAR関数を使用することで、日付を基にその年の第何週に該当するかを簡単に取得できます。

日曜始まりにしたい場合

WEEKOFYEAR関数は、通常月曜始まりで週番号が返されます。
日曜始まりの関数は存在しないため、その場合DATE_SUBで日付を一日調整することが有効です。

-- 週番号の取得(日曜日始まり)
SELECT
       date,
       WEEKOFYEAR(DATE_SUB(date, 1)) AS week_number
FROM sample_data

ここまで読んでいただきありがとうございます。
SQLでは、日付の週変換に限らず様々なケースで疑問を感じるかと思います。

このようなケースの場合はどのように記述したらよいか、、
データサイエンティストになるにはどのように効率的に学習していったらよいか?
など自己学習に不安がありましたら、以下のスクールのご活用もご検討ください!

スタアカTech AcademyCode Lesson
データサイエンティストを目指すことに特化したスクールです。現役エンジニアから学べるオンラインに特化したプログラミングスクールです。転職の支援はもちろん、副業に活かせるスキルの習得から、副業の仕事紹介まで寄り添います。「未経験から独学でプロを目指す」というコンセプトのもと、実践的なコーディング学習ができるプログラミング学習サービスです。
★コース例
・データサイエンティスト概要コース
・Python基礎コース
・データ加工集計可視化コース
・統計学概要コース
・SQL基礎コース
 など
コース例
・Pythonコース

・AIコース
・データサイエンスコース
★提供スキル
HTML, CSS, JavaScript(DOM), React, Vue, TypeScript, Java, PHP, Python, SQL

SQL参考文献

SQL学び始めの時はこちらの本を参考にしていました。

DBやテーブルの構造から、よく使う関数などがまとめられています。基礎を身につけたい方におススメかと思います。

SQL関連記事

そのほか、SQL関連記事をこちらにまとめておりますのでご参考ください。
Coffee Tech Blog SQL関連記事

もしIT業界への転職でお困りでしたら、下記サービスのご活用をご検討ください!
私は転職の際にGeeklyを活用させて頂き、ご縁を頂くことができました。

Geekly転職ドラフト
IT・WEB・ソーシャルゲーム業界を専門とした転職支援サービスです。ギークリー独占の求人案件も扱っており、大手サービスに劣らないサービス力を誇ります。転職ドラフトは年収UP率94.3% / 平均年収UP額148.4万円と圧倒的な年収UP率を誇るイベント型のエンジニア向け転職サービスです。毎月1回開催され、IT/Web系企業を中心に、厳選された約240社からダイレクトスカウトを受け取ることができます。

WEEKOFYEARでの日付の週変換まとめ

以上が、日付の週変換の解説になります。

Dailyのデータを週次で集計したい場合などに活用できると思います。週番号が月曜始まりになりますので、DATE_SUBで調整することで開始曜日を調整することができます。

ケースに合わせてご活用いただければと思います!

参考になれば幸いです☕

コメント

タイトルとURLをコピーしました