SQL
SQLで月末の日付を知りたい時の処理です。 2021-05-21 を 2021-05-31にしたいということですね。 DATE_TRUNC と DATE_ADD と DATE_SUB を使うというだけなんですが、一応やり方を残しておきます。 SELECT DATE_SUB(DATE_ADD(DATE_TRUNC('2021-05-21', MONTH)…
複数行にまたがる文字列のレコードを、GROUP BYで1行にまとめる方法です。 文字列をひとまとめにしたい時に便利です。 STRING_AGGを使います。 SELECT gender, STRING_AGG(name, ', ') AS names FROM UNNEST(ARRAY<STRUCT<gender STRING, name STRING>> [ ('male', 'taro'), ('male', 'jiro'), (</struct<gender>…
SQLでUNIX時間をタイムスタンプや日付に変換する方法です。 UNIXタイムスタンプとは、1970年1月1日午前0時0分0秒(UTC)からの経過秒数(整数)のことですね。 TIMESTAMP_SECONDS()やDATE()使うことで、UTCタイムスタンプや日付に変換できます。 SELECT TIME…
BigQueryで2つの乱数を生成して円周率の近似値を求める方法です。 実用性は無いと思いますが、練習問題にはなるかもしれないですね。 WITH RandomValue AS ( SELECT num, RAND() AS rand1, RAND() AS rand2, FROM UNNEST(GENERATE_ARRAY(1, 1000000)) AS num…
暇だったのでBigQueryで1000以下の素数の列を作りました。 素数の列がほしい時に使ってください。 NOT EXISTを使うのがポイントです! WITH Numbers AS ( SELECT num FROM UNNEST(GENERATE_ARRAY(1, 1000)) AS num ORDER BY num) SELECT N1.num AS primeNumb…
指定した日付から本日までの日付の列を生成する方法です。 日付が歯抜けになっているテーブルとJOINしたいときや、日付のマスタを作る際に使えそうです。 ▼Query -- 指定した日付から本日までの日付の列を生成する WITH DateRange AS( SELECT jpDate FROM UN…
今日の日付を取得する方法を覚えていても、昨日となると忘れがち。 SELECT DATE_SUB(CURRENT_DATE('Asia/Tokyo'), INTERVAL 1 DAY) AS yesterday