SQL

Athenaで特定の期間内のランダムな日時をユーザーごとに生成するクエリサンプル

この記事は約2分で読めます。

 

Athena で特定の期間内のランダムな日時をユーザーごとに生成するクエリは、AthenaがPrestoをベースにしていることを考慮して作成します。Presto SQLでは、random() 関数を使用して乱数を生成し、日付関数を組み合わせてランダムな日時を割り当てることができます。

 

例えば、2021年1月1日から2021年12月31日の間でランダムな日時を生成する場合、以下のようなクエリが使えます

 

SELECT
  user_id,
  DATE_ADD('2021-01-01', INTERVAL FLOOR(RAND() * (DATEDIFF('2021-12-31', '2021-01-01') + 1)) DAY) as random_date
FROM
  your_table;

 

このクエリでは以下のことを行っています:

  • random() 関数で0から1までのランダムな値を生成します。
  • date_diff('day', date('2021-01-01'), date('2021-12-31')) で2021年1月1日から12月31日までの日数を計算します。
  • 生成されたランダムな値に上記の日数を乗算し、1を足して完全な日数範囲を得ます。
  • cast(... as integer) で整数に変換します。
  • date_add('day', ..., date('2021-01-01')) で、2021年1月1日からランダムに生成された日数を加算し、ランダムな日時を得ます。

 

ここで your_table は、ランダムな日時を割り当てたいユーザーのIDが含まれるテーブル名に置き換えてください。また、Athenaでは日付のフォーマットや関数の使用方法が他のSQLデータベースと異なる場合があるので、必要に応じてクエリを調整してください。

 


プログラミング・スクレイピングツール作成の相談を受け付けています!

クラウドワークス・ココナラ・MENTAなどでPython・SQL・GASなどのプログラミングに関する相談やツール作成などを承っております!

過去の案件事例:

  • Twitter・インスタグラムの自動化ツール作成
  • ウェブサイトのスクレイピングサポート
  • ダッシュボード・サイト作成
  • データエンジニア転職相談

これまでの案件例を見る

キャリア相談もお気軽に!文系学部卒からエンジニア・データサイエンティストへの転職経験をもとに、未経験者がどう進むべきかのアドバイスを提供します。


スポンサーリンク
/* プログラミング速報関連記事一覧表示 */
ミナピピンの研究室

コメント

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