BigQuery関数一覧

こちらはBigQueryにおけるメジャーな関数(GoogleSQL)一覧のリンク集だ。

各関数をクリックするとその関数の簡単な説明が表示される。

関数名がリンクになっている関数は記事でより詳細を確認することが出来る。

関数の区分けはBigQueryの公式ページと極力合わせているが、わかりやすさ重視で分類を調整したり、除外しているものもある。

また、関数と合わせて非常によく使う条件式(IFやCASE等)やUNNESTなどの演算子も含んでいる。

よって、厳密なカテゴリ定義にはこだわっていない点はご了承いただきたい。

もし正確に関数一覧を把握したい方はBigQueryの公式リファレンスを確認して欲しい。

集計関数

集計関数は、複数の行の値をまとめて処理し、単一の結果を生成するために使用される関数です。

  • ANY_VALUE

    特定の列に複数の異なる値が存在する場合に、その中から一つの値をランダムに返す。
    グループ化された結果に、集計やグループ化の対象外の列を含めたい場合に便利です。

  • ARRAY_AGG
    指定された列の値を配列として集約します。グループ化されたクエリの結果として、各グループ内の値を単一の配列にまとめることが出来ます。
  • ARRAY_CONCAT_AGG

    指定された列の配列値を集約し、単一の大きな配列を作成します。
    グループ内の複数の配列を一つに結合したい場合や、配列の要素を集約して一つの配列として扱いたい場合に便利です。

  • AVG

    指定された列の数値データの平均値を計算します。

  • 指定した列のNULL値を無視したレコード数をカウントします。テーブルの行数の把握やグループ化されたクエリの各グループのレコード数を数えるのに便利です。
  • COUNTIF
    指定された条件を満たす行の数をカウントします。特定の条件に基づいて行数を数える場合に便利です。
  • GROUPING
    特定のグルーピングセットによってどの行がグループ化されたかを識別することができます。どの行がどのグルーピングセットによって生成されたかを判断し、フィルタリングする必要がある場合に便利です。
  • LOGICAL_AND

    指定されたカラムの全ての値がTRUEであればTRUEを、そうでなければFALSEを返します。

  • LOGICAL_OR
    指定されたカラムのいずれかの値がTRUEであればTRUEを、全てFALSEであればFALSEを返します。
  • MAX

    指定された列の数値または文字列データの最大値を返します

  • MAX_BY

    ある列の最大値に対応する別の列の値を返します。つまり、指定した列の最大値の行に該当する別の列の値を取得することができます。

  • MIN

    指定された列の数値または文字列データの最小値を返します。

  • MIN_BY

    ある列の最小値に対応する別の列の値を返します。つまり、指定した列の最小値の行に該当する別の列の値を取得することができます。

  • STRING_AGG

    指定された文字列の値を連結して、単一の文字列として集約します。オプションで区切り文字を指定することもでき、この区切り文字は連結される各値の間に挿入されます。

  • SUM

    指定された数値列の合計を返します。

 

配列関数

配列関数は配列要素の操作、配列の生成、配列の検索などが行うことが出来る関数です。

  • ARRAY

    指定した値のリストから配列を作成できます。

  • ARRAY_CONCAT

    複数の配列を連結して一つの配列にすることができます。
    複数の配列の要素をまとめて一つの配列にしたい場合や、配列のデータを結合して処理したい場合に便利です。

  • ARRAY_LENGTH

    配列の要素数(長さ)を返します。配列内の要素の総数を知りたい場合に便利です。

  • ARRAY_REVERSE

    配列の要素の順序を逆にして新しい配列を返します。この関数は、配列内の要素の順序を反転させたい場合に便利です。

  • ARRAY_TO_STRING

    配列の要素を指定された区切り文字で連結して文字列として返します。配列のデータを文字列として扱いたい場合に便利です。

  • GENERATE_ARRAY

    指定された開始値、終了値、およびオプションでステップ値を使用して整数の配列を生成します。連続した整数の範囲を配列として作成する場合に便利です。

  • GENERATE_DATE_ARRAY

    指定された開始日と終了日の間の日付の配列を生成します。特定の日付範囲内の日付のリストを作成する場合に便利です。

  • GENERATE_TIMESTAMP_ARRAY

    指定された開始タイムスタンプと終了タイムスタンプの間のタイムスタンプの配列を生成します。特定のタイムスタンプ範囲内のタイムスタンプのリストを作成する場合に便利です。

条件式/条件関数

条件式(条件関数)は特定の条件に基づいて異なる値を返す関数です。

  • CASE

    条件に基づいて異なる値を返すために使用される分岐式です。指定したカラムの値に応じて返す値を変えたい場合などに便利です。

  • 指定したカラムの値がNULLの場合に指定した別の値に置き換えてくれる関数です。NULL値を別の値に置き換えたい時や複数のカラムを統合したい時に便利な関数です。

  • IF

    特定の条件が真(TRUE)か偽(FALSE)かに基づいて異なる値を返します。簡単な条件分岐を行いたい時に便利です。

  • 指定したカラムの値がNULLかどうかを判定し、もしNULLなら代わりに別の値を返してくれる関数です。シンプルにNULLを他の値に置き換えたい時に便利な関数です。

  • NULLIF

    指定する値が等しい場合にはnullを返し、そうでない場合はそのままの値を返す関数です。不要なデータをフィルタリングしたり、特定の値を除外して分析を行う場合に便利です。

変換関数

変換関数は、あるデータ型を別のデータ型に変換するために使用される関数です。

  • あるデータ型の値を別のデータ型に変換することができます。異なるデータ型間での変換が必要な場合や、関数や演算子の引数として適切なデータ型を確保したい場合に便利です。

  • PARSE_NUMERIC

    数値として解釈可能な文字列をNUMERIC型の値に変換します。文字列データを数値データに変換する必要がある場合や、数値演算を行う前に文字列を数値型に変換する場合に便利です。

  • あるデータ型の値を別のデータ型に安全に変換できます。CAST関数とは異なり、SAFE_CAST関数は変換に失敗した場合にエラーを発生させるのではなく、NULLを返します。

日付関数

日付に関するデータを操作・変換・抽出するための関数です。

  • CURRENT_DATE

    クエリが実行された時点の現在の日付を返します。返される値のデータ型は日付型(DATE型)です。

  • DATE

    指定された年、月、日から日付型(DATE型)の値を生成します。数値や文字列の引数から日付を作成する場合に便利です。

  • 指定された日付に特定の期間を加算して新しい日付を返します。日付の計算を行いたい場合に便利です。期間を減算する場合は、マイナスの期間数を指定するかDATE_SUB関数を使用します。

  • DATE_DIFF

    指定された2つの日付間の差を計算して、指定された単位でその差を返します。2つの日付間の期間を計算する必要がある場合や、日付の差を基にした分析を行う際に便利です。

  • DATE_FROM_UNIX_DATE

    UNIX日付(1970年1月1日からの日数)を基にした整数値を日付型(DATE型)の値に変換します。UNIX日付を通常の日付形式に変換する場合に便利です。

  • DATE_SUB

    指定された日付から特定の期間を減算して新しい日付を返します。日付の計算を行う際に便利です。期間を加算する場合は、DATE_ADD関数を使用します。

  • 指定された日付を特定の日付単位まで切り捨てて新しい日付を返します。日付データを月や年などの単位で丸めたい場合に便利です。

  • 日付またはタイムスタンプから特定の部分(年、月、日、時間など)を抽出するために使用されます。日時データを分析する際に便利な関数です。

  • 日付を指定されたフォーマットの文字列として返します。日付を指定した形式の文字列に変換したい時に便利です。
  • LAST_DAY

    指定された日付が含まれる月の最終日を返します。月末の日付を取得したい場合に便利です。

  • PARSE_DATE

    指定された書式に従ってフォーマットされた文字列を日付型(DATE型)の値に変換します。文字列形式の日付データを日付型に変換する場合に便利です。

  • UNIX_DATE

    日付型(DATE型)の値を1970年1月1日からの日数として表される整数(UNIX日付)に変換します。日付データをUNIX日付形式で扱いたい場合や、日付の差を日数として計算したい場合に便利です。

日時関数

日時に関するデータを操作・変換・抽出するための関数です。

  • CURRENT_DATETIME

    クエリが実行された時点の現在の日時を返します。返される値のデータ型は日時型(DATETIME型)です。

  • DATETIME
    指定された年、月、日、時、分、秒から日時型(DATETIME型)の値を生成します。数値や文字列の引数から日時を作成する場合に便利です。
  • DATETIME_ADD
    指定された日時に特定の期間を加算して新しい日時を返します。日時の計算を行う場合に便利です。日時の減産を行いたい場合はDATETIME_SUBを利用します。
  • DATETIME_DIFF

    指定された2つの日時間の差を計算して、指定された単位でその差を返します。日時間の期間を求める場合に便利です。

  • DATETIME_SUB

    指定された日時から特定の期間を減算して新しい日時を返します。日時の計算を行う際に便利です。期間を加算する場合は、DATETIME_ADD関数を使用します。

  • 指定された日時を特定の日時単位まで切り捨てて新しい日時を返します。日時データを特定の月や時などの単位で丸めたい場合に便利です。
  • 日付またはタイムスタンプから特定の部分(年、月、日、時間など)を抽出するために使用されます。日時データを分析する際に便利な関数です。
  • FORMAT_DATETIME

    日時型(DATETIME型)の値を指定された書式に従ってフォーマットした文字列として返します。日時を指定した形式の文字列に変換したい時に便利です。

  • PARSE_DATETIME
    指定された書式に従ってフォーマットされた文字列を日時型(DATETIME型)の値に変換します。文字列形式の日時データを日時型に変換する場合に便利です。

ハッシュ関数

入力データ(文字列や数値など)を固定長のハッシュ値に変換する関数です

  • FARM_FINGERPRINT

    指定された文字列のハッシュ値を計算して返します。FarmHashアルゴリズムを使用して64ビットの整数ハッシュ値を生成します。文字列の一意性を検証したり、大きなデータセットのグループ化や分割を行う際に便利です。

  • MD5

    指定された文字列のMD5ハッシュ値を計算します。MD5(Message-Digest Algorithm 5)は、128ビットのハッシュ値を生成するハッシュ関数の一つで、データの整合性チェックや一意性の確認などに使用されます。

  • SHA256
    指定された文字列のSHA-256ハッシュ値を計算します。SHA-256(Secure Hash Algorithm 256-bit)は、256ビットのハッシュ値を生成するハッシュ関数で、データの整合性チェックやセキュリティ関連の用途に広く使用されています。
  • SHA512
    指定された文字列のSHA-512ハッシュ値を計算します。SHA-512(Secure Hash Algorithm 512-bit)は、512ビットのハッシュ値を生成するハッシュ関数で、データの整合性チェックやセキュリティ関連の用途に広く使用されます。

     

区間関数

インターバル値の一部を抽出したり、正規化する関数です。

  • 日付またはタイムスタンプから特定の部分(年、月、日、時間など)を抽出するために使用されます。日時データを分析する際に便利な関数です。

  • JUSTIFY_DAYS

    インターバルの日数部分を-29から29の範囲に正規化することによって、間隔の月数または年数部分を増減させます。特定の期間をより標準的な形式に変換する場合に便利です。

  • JUSTIFY_HOURS

    インターバルの時間部分を-23:59:59.999999から23:59:59.999999の範囲に正規化することによって、インターバルの日数部分を増減させます。時間数と日数が混在する間隔を扱う際に、それをより理解しやすい形式に変換する必要がある場合に使用されます。

  • JUSTIFY_INTERVAL
    インターバルの日数と時間部分を正規化します。
  • MAKE_INTERVAL

    指定された年、月、日、時間、分、秒から間隔を作成します。複数の時間単位を組み合わせてインターバルを作成したい場合に便利です。

     

JSON関数

JSON形式のデータを操作するための関数です。

  • JSON_ARRAY

    指定された値のリストからJSON形式の配列を作成します。複数の値をJSON配列として簡単にまとめたい時に便利です。

  • JSON_ARRAY_APPEND

    JSON配列の末尾に新しい要素を追加し、新しいJSON配列を返します。配列の末尾に新しいデータを追加する場合に便利です。

  • JSON_ARRAY_INSERT

    JSON配列の特定の位置に値を挿入して、新しいJSON配列を返します。配列の特定の位置に新しいデータを挿入したい場合に便利です。

  • JSON_EXTRACT
    JSON形式の文字列から任意のJSONデータを抽出します。複雑なJSONデータ構造から必要な情報を効率的に抽出したい場合に便利です。
  • JSON_EXTRACT_ARRAY

    JSON形式の文字列から特定の配列を抽出します。JSONデータから配列の要素を取得する場合に便利です。

  • JSON_EXTRACT_SCALAR

    JSON形式の文字列から特定のスカラー値(数値、文字列、真偽値などの単一の値)を抽出します。JSONデータから特定のプロパティの値を取得する場合に便利です。

  • JSON_EXTRACT_STRING_ARRAY
    JSON形式の文字列から特定の文字列配列を抽出します。JSONデータから特定の配列の要素を文字列として取得する場合に便利です。
  • JSON_OBJECT

    指定されたキーと値のペアからJSON形式のオブジェクトを作成します。データをJSON形式で出力する必要がある場合や、複数の値をJSONオブジェクトとしてまとめたい場合に便利です。

  • JSON_QUERY

    JSON形式の文字列から特定のオブジェクトや配列を抽出します。JSONデータから特定の部分をJSON形式で取得する場合に便利です。

  • JSON_QUERY_ARRAY

    JSON形式の文字列から特定の配列を抽出し、その配列の各要素をJSON形式の文字列として返します。JSONデータから特定の配列を抽出して、配列の要素を個別のJSONオブジェクトとして扱いたい場合に便利です。

  • JSON_REMOVE

    JSON形式の文字列から特定のキーまたはインデックスに対応する要素を削除し、結果として新しいJSON文字列を返します。JSONデータから特定の部分を削除する場合に便利です。

  • JSON_SET

    JSON形式の文字列において、指定されたパスに対応する値を設定または更新し、結果として新しいJSON文字列を返します。JSONデータ内の特定の値を更新または追加する場合に便利です。

  • JSON_STRIP_NULLS

    JSON形式の文字列からすべてのnull値を持つキーを削除し、結果として新しいJSON文字列を返します。JSONデータからnull値を取り除きたい場合に便利です。

  • JSON_VALUE

    JSON形式の文字列から特定のスカラー値(数値、文字列、真偽値などの単一の値)を抽出して、SQLデータ型として返します。JSONデータから特定のプロパティの値を取得する場合に便利です。

  • JSON_VALUE_ARRAY

    スカラー値のJSON配列を抽出し、それをSQLのARRAY<STRING>値に変換します。配列の要素が数値や真偽値など、異なるデータ型を持つ可能性がある場合に適しています。

  • PARSE_JSON

    JSON形式の文字列をJSON値に変換します。

  • TO_JSON
    SQLの値をJSONの値に変換します。様々なデータ型の値をJSON形式で表現する場合に便利です。
  • TO_JSON_STRING
    SQLの値をJSON形式の文字列に変換します。BigQueryのデータをJSON形式で外部システムにエクスポートしたり、JSON形式でデータを保存・表示する必要がある場合に便利です。

数学関数

数値データに対して様々な数学的操作を行うための関数です。

  • ABS

    指定された数値の絶対値を返します。この関数は、数値の絶対値を求める場合に便利です。

  • CEIL(CEILING)
    指定した数値以上の最小の整数に切り上げます。
  • DIV

    指定された2つの数値の除算の結果を整数で返します。除算の結果を整数で得たい場合に便利です。

  • EXP

    指定された数値の自然対数の底(ネイピア数 e、約2.71828)を指数とする指数関数の値を返します。

  • FLOOR

    指定した値の小数点以下を切り捨てます。計算結果を整数に丸めたい場合等に便利です。

  • 指定した引数の中で最大値を返します。指定した列の同じ行の値を比較して最大値を取得したい時に便利です。
  • LEAST
    指定した引数の値の中で最小値を返します。指定した列の同じ行の値を比較して最小値を取得したい時に便利です。
  • LN

    指定された数値の自然対数(底がネイピア数 e の対数)を返します。数値の自然対数を求める場合に便利です。

  • LOG

    指定された底に対する数値の対数を返します。任意の底を持つ対数を求める場合に便利です。

  • LOG10

    指定された数値の常用対数(底が10の対数)を返します。底が10の対数を求める場合に便利です。

  • MOD

    2つの数値の剰余(余り)を返します。除算の結果の余りを求める場合に便利です。

  • POW(POWER)

    指定された基数(底)を指定された指数で累乗した結果を返します。べき乗計算を行う場合に便利です。

  • RAND
    0以上1未満の範囲でランダムな実数値を返します。サンプリング、テストデータの生成、シミュレーションなど、ランダムな数値が必要な場面で便利です。
  • RANGE_BUCKET

    指定された値が指定された範囲のリスト内でどの範囲に属するかを示すインデックスを返します。値を範囲に分類する必要がある場合、例えばヒストグラムの作成やカテゴリ別の集計の際に便利です。

  • 指定された数値を指定された桁数で四捨五入した結果を返します。数値を特定の精度で丸める場合に便利です。

  • SAFE_ADD
    指定された2つの数値を加算し、結果がオーバーフローやアンダーフローを起こさないように安全に処理します。加算の結果が数値の範囲を超える可能性がある場合に便利です。
  • SAFE_DIVIDE

    指定された2つの数値を安全に除算し、除数が0の場合にエラーを起こさずにNULLを返します。除算の結果が未定義になる可能性がある場合に便利です。

  • SAFE_MULTIPLY

    指定された2つの数値を安全に乗算し、結果がオーバーフローやアンダーフローを起こさないように処理します。乗算の結果が数値の範囲を超える可能性がある場合に便利です。

  • SAFE_NEGATE

    指定された数値の符号を反転させた結果を返しますが、結果がオーバーフローやアンダーフローを起こさないように安全に処理します。数値の符号を反転させる際にオーバーフローを避けたい場合に便利です。

  • SAFE_SUBTRACT
    指定された2つの数値を安全に減算し、結果がオーバーフローやアンダーフローを起こさないように処理します。減算の結果が数値の範囲を超える可能性がある場合に便利です。
  • SQRT

    指定された数値の平方根を返します。数値の平方根を求める場合に便利です。

  • TRUNC

    指定された数値を整数部分のみに切り捨てた結果を返します。数値の小数部分を切り捨てて整数にする場合に便利です。

ナビゲーション関数

行のグループに対して値を計算し、各行に対して単一の結果を返す関数です。行のグループに対して単一の結果を返す集計関数とは異なります。

  • FIRST_VALUE

    指定された範囲(ウィンドウ)内の最初の値を返します。グループ内の最初の要素を取得する場合に便利です。

  • 指定したカラムの「現在の行」の「前にある行」の値を返します。前月比や前年比を取得する際に便利です。
  • LAST_VALUE

    指定された範囲(ウィンドウ)内の最後の値を返します。グループ内の最後の要素を取得する場合に便利です。

  • LEAD
    指定したカラムの「現在の行」の「後ろにある行」の値を返します。時系列データで、次の期間との比較を行う場合に便利です。
  • NTH_VALUE

    指定された範囲(ウィンドウ)内の特定の順序である行の値を返します。グループ内の特定の位置にある要素を取得する場合に便利です。

  • PERCENTILE_CONT
    指定されたパーセンタイル(百分位数)に対応する連続値(分位数)を計算します。分布の中央値を求めたい時やデータの分布理解、異常値の検出に便利です。
  • PERCENTILE_DISC

    指定されたパーセンタイル(百分位数)に対応する離散値(分位数)を計算します。分布の中央値を求めたい時やデータの分布理解、異常値の検出に便利ですPERCENTILE_CONTとは異なり、補間せずにデータセット内の実際の値を返します。

NET関数

ネットワークに関連する操作を行うための関数です。

  • NET.HOST

    URLまたはURIからホスト部分を抽出するために使用されます。URLやURIからドメイン名やホスト名を取得する場合に便利です。

  • NET.PUBLIC_SUFFIX

    指定されたURLまたはドメイン名からパブリックサフィックス(公開ドメインの最も右側の部分)を抽出するために使用されます。ドメイン名の最上位レベルの部分を取得する場合に便利です。

  • NET.REG_DOMAIN

    指定されたURLまたはドメイン名から登録ドメイン(サブドメインを除いたドメイン名の部分)を抽出するために使用されます。ドメイン名からサブドメインを除いた部分を取得する場合に便利です。

番号付け関数

データセット内の行に順位や番号を割り当てるための関数です。

  • CUME_DIST
    指定された範囲(ウィンドウ)内の現在の行の累積分布を計算します。データセット内の特定の値が全体の中でどの位置にあるかをパーセンテージで表す場合に便利です。
  • DENSE_RANK
    指定された範囲(ウィンドウ)内の各行に密集ランク(連続したランク)を割り当てます。データの順位付けやランキングを行う場合に便利ですが、特に、ランクの間にギャップを作りたくない場合や、同じ値の要素に同じランクを割り当てたい場合に役立ちます。
  • NTILE
    指定された範囲(ウィンドウ)内の行を等しいサイズのグループに分割し、各行にタイル番号(グループ番号)を割り当てます。データセットを等しいサイズのビンに分割する場合に便利です。
  • PERCENT_RANK
    指定された範囲(ウィンドウ)内の行のパーセンタイルランクを計算します。データセット内の特定の値が全体の中でどの位置にあるかをパーセンテージで表す場合に便利です。
  • RANK
    指定された範囲(ウィンドウ)内の各行にランクを割り当てます。データセット内の値の順位付けを行う場合に便利です。特に、同じ値の要素に同じランクを割り当てたい場合や、ランクの間にギャップを作りたい場合に役立ちます。
  • 指定した範囲(ウィンドウ)内の各行に行番号を振ります。重複したレコードの削除や最新の履歴データを取得したい場合などのシーンで便利です。

統計集計関数

データセットの統計的な特性を分析するために使用される関数です。

  • CORR

    指定された2つの数値列の間の相関係数(ピアソンの相関係数)を計算します。、2つの変数の間の相関を分析したり、データの傾向を把握したい場合に便利です。

  • COVAR_POP
    指定された2つの数値列の間の母集団共分散を計算します。データの傾向を調べたり、変数間の関係を理解したい場合に便利です。
  • COVAR_SAMP
    指定された2つの数値列の間の標本共分散を計算します。。データの傾向を調べたり、変数間の関係を理解したい場合に便利です。標本共分散は、データセットが母集団の一部である場合に特に有用です。
  • STDDEV(STDDEV_SAMP)
    指定された数値列の標準偏差を計算します。データセット内の値が平均からどの程度散らばっているかを測定する場合に便利です。
  • STDDEV_POP
    指定された数値列の母集団標準偏差を計算します。データセット全体が母集団である場合に、値が平均からどの程度散らばっているかを測定する場合に便利です。
  • VAR_POP
    指定された数値列の母集団分散(population variance)を計算します。データセット全体が母集団である場合に、値が平均からどの程度散らばっているかを測定する場合に便利です。
  • VAR_SAMP
    指定された数値列の標本分散(sample variance)を計算します。データセットが母集団の一部である標本である場合に、値が平均からどの程度散らばっているかを測定する場合に便利です。

文字列関数

文字列データを操作・抽出・変換するための関数です。

  • CHAR_LENGTH(CHARACTER_LENGTH)
    指定された文字列の長さ(文字数)を返します。文字列の長さを調べる場合に便利です。
  • 複数の文字列を連結して1つの文字列を返します。複数のカラムの値同士を指定した順序で結合したい時などに便利です。
  • CONTAINS_SUBSTR
    対象の文字列に指定した文字列が含まれているかどうかを判定し、TRUEかFALSEを返します。

    特定のキーワードが含まれているレコードをフィルタリングしたり、文字列内のパターンの存在を確認したりする場合に便利です。

  • ENDS_WITH

    指定された文字列が特定のサフィックス(接尾辞)で終わっているかどうかを判定し、TRUEかFALSEを返します。ファイル名やURLなどの文字列が特定の拡張子やパターンで終了するかをチェックしたい場合などに便利です。

  • FORMAT

    数値や文字列など、様々なデータ型の値を指定された形式に従ってフォーマットした文字列を返します。

  • INITCAP

    指定された文字列の各単語の最初の文字を大文字にし、残りの文字を小文字に変換した結果を返します。タイトルや見出しのフォーマットに適しています。文章の整形やデータの標準化に便利です。

  • INSTR
    指定された文字列内で部分文字列が最初に出現する位置を返します。特定のキーワードが含まれている位置を特定したり、文字列内のパターンの出現回数を調べたりするのに便利です。
  • LEFT
    指定された文字列の左側から特定の数の文字を抽出して返します。IDから先頭の数文字を取得したい時やコードの接頭辞を抽出したい時などに便利です。
  • LENGTH
    指定された文字列やBYTES型のデータの長さ(文字数)を返します。この関数は、文字列の長さを調べる場合に便利です。
  • LOWER
    指定された文字列のすべてのアルファベット文字を小文字に変換した結果を返します。文字列の大文字を小文字に変換する場合に便利です。
  • LPAD
    指定された文字列の左側を特定の文字で埋めて、指定された長さの文字列を作成します。固定長の文字列を作成する場合や、文字列を特定の形式に整形する場合に便利です。。
  • LTRIM
    指定された文字列の左側から特定の文字を削除した結果を返します。文字列の左側にある余分な空白や特定の文字を取り除く場合に便利です。
  • NORMALIZE
    指定された文字列を正規化した結果を返します。全角英数字を半角に変換したい場合などに便利です。
  • NORMALIZE_AND_CASEFOLD

    指定された文字列を正規化し、すべてのアルファベット文字を小文字に変換した結果を返します。

  • REGEXP_CONTAINS
    指定された文字列が正規表現パターンに一致するかどうかを判定し、TRUEもしくはFALSEを返します。文字列の検索やマッチングを行う場合に便利です。
  • REGEXP_EXTRACT
    指定された文字列から正規表現パターンに一致する部分を抽出します。文字列から特定のフォーマットのデータを取り出したい場合や、文字列内の特定のパターンに一致する部分を抽出する場合に便利です。
  • REGEXP_EXTRACT_ALL
    指定された文字列から正規表現パターンに一致するすべての部分を抽出して配列として返します。文字列から特定のフォーマットのデータを複数回取り出したい場合や、文字列内の特定のパターンに一致する部分をすべて抽出したい場合に便利です。
  • REGEXP_INSTR
    指定された文字列内で正規表現パターンに一致する最初の部分の位置を返します。文字列内に特定のパターンが含まれている位置を特定したい時などに便利です。
  • REGEXP_REPLACE
    指定された文字列内で正規表現パターンに一致するすべての部分を別の文字列で置換した結果を返します。特定のフォーマットに従っている部分を別の形式に変換したり、文字列内の不要なパターンを削除したりするのに便利です。
  • REGEXP_SUBSTR
    指定された文字列から正規表現パターンに一致する部分文字列を抽出します。文字列内の特定のパターンに一致する部分を取り出す場合に便利です。
  • REPEAT
    指定された文字列を特定の回数繰り返した結果を返します。特定のパターンを繰り返し生成する場合や、文字列の繰り返しを利用して視覚的な効果を作成する場合などに便利です。
  • REPLACE
    指定された文字列内で特定の部分文字列を別の文字列で置換した結果を返します。特定のフォーマットに従っている部分を別の形式に変換したり、文字列内の不要なパターンを削除したりするのに便利です。
  • REVERSE
    指定された文字列の文字の順序を逆にした結果を返します。文字列の逆順を取得したい場合や、文字列のパターンを逆から検索する場合などに便利です。
  • RIGHT
    指定された文字列の右側から特定の数の文字を抽出して返します。文字列の末尾にある特定のパターンを取得したい場合やファイル名の拡張子を取得したい場合に便利です。
  • RPAD
    指定された文字列の右側を特定の文字で埋めて、指定された長さの文字列を作成します。固定長の文字列を作成したい場合や、文字列を特定の形式に整形する場合に便利です。
  • RTRIM
    指定された文字列の右側から特定の文字を削除した結果を返します。文字列の右側にある余分な空白や特定の文字を取り除きたい場合に便利です。
  • SPLIT
    指定された文字列を特定の区切り文字で分割して、結果を配列として返します。CSVファイルやログファイルなど、区切り文字で区切られた文字列を処理したい場合や、文字列をトークンに分割して解析したい場合に便利です。
  • STARS_WITH
    指定された文字列が特定のプレフィックス(接頭辞)で始まっているかどうかを判定し、TRUEもしくはFALSEを返します。文字列の最初に特定の単語やフレーズが含まれているかを確認したい場合に便利です。
  • 対象の文字列から指定した文字列の位置を整数で返します。文字列内に特定のパターンが含まれている位置を特定したい場合に便利です。
  • 指定された文字列から特定の位置にある部分文字列を抽出して返します。文字列の一部を抽出したい場合や、特定の位置にあるデータを取り出したい場合に便利です。
  • TRANSLATE
    指定された文字列内の特定の文字を別の文字に置換した結果を返します。文字列内の特定の文字セットを別の文字セットに一括置換する場合に便利です。
  • TRIM
    指定された文字列の両端から特定の文字を削除した結果を返します。ユーザー入力の前後の空白を削除したい場合や、文字列の整形を行う場合などに便利です。
  • UPPER
    指定された文字列のすべてのアルファベット文字を大文字に変換した結果を返します。文字列の小文字と大文字を統一したい場合や、大文字と小文字を区別しない検索や比較を行いたい場合に便利です。

タイム関数

時間に関連するデータを操作・変換・抽出するための関数です。

  • CURRENT_TIME

    現在の時刻を返します。クエリ実行時の現在の時刻を取得する場合に便利です。

  • 日付またはタイムスタンプから特定の部分(年、月、日、時間など)を抽出するために使用されます。日時データを分析する際に便利な関数です。

  • FORMAT_TIME

    指定された形式に従ってTIME型の値をフォーマットした文字列を返します。時刻を特定の形式の文字列で表示する場合に便利です。

  • PARSE_TIME

    指定された形式の文字列からTIME型の値を解析して返します。文字列形式の時刻データをTIME型に変換する場合に便利です。

  • TIME

    指定された時間の成分(時、分、秒)を受け取り、それらを組み合わせてTIME型の値を作成します。時、分、秒の値からTIME型の値を作成したい場合に便利です。

  • TIME_ADD

    指定されたTIME値に時間の間隔を加算して新しいTIME値を返します。時刻に特定の時間を加えたい場合に便利です。時刻を減算する場合はTIME_SUBを使用します。

  • TIME_DIFF

    2つのTIME値の間の時間差を指定された単位で計算して返します。2つの時刻の差を求めて期間等を計算したい場合に便利です。

  • TIME_SUB

    指定されたTIME値から時間の間隔を減算して新しいTIME値を返します。この関数は、時刻から特定の時間を引きたい場合に便利です。時刻を加算する場合はTIME_ADDを使用します。

  • TIME_TRUNC
    対象のTIME値を指定された単位で切り捨てた新しいTIME値を返します。時刻を特定の単位で切り捨てたい場合に便利です。

タイムスタンプ関数

日付と時刻に関連するデータを操作・変換・抽出するための関数です。

    • CURRENT_TIMESTAMP
      現在のタイムスタンプを返します。クエリ実行時の日時を取得する場合に便利です。
    • 日付またはタイムスタンプから特定の部分(年、月、日、時間など)を抽出するために使用されます。日時データを分析する際に便利な関数です。
    • FORMAT_TIMESTAMP
      指定された形式に従ってTIMESTAMP値をフォーマットした文字列を返します。タイムスタンプを特定の形式の文字列で表示する場合に便利です。
    • PARSE_TIMESTAMP
      指定された形式の文字列からTIMESTAMP型の値を解析して返します。文字列形式のタイムスタンプデータをTIMESTAMP型に変換する場合に便利です。
    • TIMESTAMP_ADD
      指定されたTIMESTAMP値に時間の間隔を加算して新しいTIMESTAMP値を返します。タイムスタンプに特定の時間を加えたい場合に便利です。タイムスタンプを減算したい場合はTIMESTAMP_SUBを利用します。
    • TIMESTAMP_DIFF
      2つのTIMESTAMP値の間の時間差を指定された単位で計算して返します。2つのタイムスタンプの差を求めて期間等を計算したい場合に便利です。
    • TIMESTAMP_SUB
      指定されたTIMESTAMP値に時間の間隔を減算して新しいTIMESTAMP値を返します。タイムスタンプから特定の時間を引きたい場合に便利です。タイムスタンプを加算したい場合はTIMESTAMP_ADDを利用します。
    • TIMESTAMP_TRUNC
      対象のTIMESTAMP値を指定された単位で切り捨てた新しいTIMESTAMP値を返します。タイムスタンプを特定の単位まで切り捨てる場合に便利です。

ユーティリティ関数

  • GENERATE_UUID

    ランダムなUUID(Universally Unique Identifier)を生成して返します。この関数は、一意な識別子を生成する場合に便利です。

便利な演算子

  • 指定したカラムの行データを列データに変換します。データ分析がより行いやすくなるようデータの加工・整形をする際に便利です。

  • 二つ以上のSELECTの結果を統合します。UNION ALLは重複行を含む全ての行を結果に含みます。重複を結果から除外したい場合はUNION DISTINCTを使います。

  • 二つ以上のSELECTの結果を統合します。UNION DISTINCTは重複している行はユニオンの結果から除外します。重複を含む全ての行をユニオンしたい場合はUNION ALLを使います。

  • UNNEST
    配列(ARRAY)を受け取って配列内の各要素を1行にしてテーブルに返します。配列や構造体内のデータをフラット化して扱いやすくする場合に便利です。
  • UNPIVOT
    指定したカラムの列データを行データに変換します。PIVOTの逆の操作をします。