DDSQL 関数 (プレビュー)

集約関数

集約関数は入力値の集合から単一の結果を計算します。通常は GROUP BY 句と併用されます。

avg

名前引数の型戻り値の型説明
avg(expr e)numericnumericNULL でないすべての入力値の平均 (算術平均) を計算します。

max

名前引数の型戻り値の型説明
max(expr e)variablevariableNULL でない入力値の最大値を計算します。入力値の型は相互に比較可能である必要があります。

min

名前引数の型戻り値の型説明
min(expr e)variablevariableNULL でない入力値の最小値を計算します。入力値の型は相互に比較可能である必要があります。

sum

名前引数の型戻り値の型説明
sum(expr e)numericnumericNULL でない入力値の合計を計算します。

count

名前引数の型戻り値の型説明
count(expr e)numericinteger入力値が NULL でない行の数を計算します。
count(distinct expr e1, e2 …)integerNULL でない入力値の個数を、重複を除いて数えます。
count(*)integer入力行数を計算します。

string_agg

名前引数の型戻り値の型説明
string_agg(expr e, delimiter e)string, stringstring入力値を区切り文字で連結します。

array_agg

名前引数の型戻り値の型説明
array_agg(expr e)variablearray入力値を配列に連結します。

スカラー関数

これらの関数は行ごとに 1 つの値を返します。

文字列関数と演算子

名前戻り値の型説明
upper(text s)texts を大文字に変換します。
lower(text s)texts を小文字に変換します。
length(text s)integers の文字数を数えます。
concat(expr x, y, …)text指定された式を連結します。
substr(expr s, numeric start, numeric numChars)texts の部分文字列を返します。開始位置 start から、最大 numChars 文字 (指定された場合) までを取得します。start は 1 始まりのインデックスなので、substr('hello', 2)'ello' を返します。開始位置が 1 未満の場合は 1 として扱われます。結果は文字範囲 [start, start+numChars] を取ることで計算され、いずれかの値が 1 未満なら 1 として扱われます。つまり、substr('hello', -2, 4)'h' を返します。
replace(text s, text from, text to)texts 中の部分文字列 from をすべて部分文字列 to に置換します。
regexp_replace(text s, text pattern, text replacement)texts 中で POSIX 正規表現 pattern に一致する部分を replacement に置換します。Go の 正規表現構文 をサポートします。
reverse(expr text)string文字列を反転します (brown → nworb)。
md5(expr text)string文字列の MD5 ハッシュを計算し、16 進数で返します。
char_length(str text)integerstr の文字数を返します。
left(str text, n int)textstr の先頭 n 文字を返します。n が負のときは、末尾の
right(str text, n int)textstr の末尾 n 文字を返します。n が負のときは、先頭の
ltrim(str text [, characters text])textstr の先頭から、characters (既定ではスペース) に含まれる文字だけで構成される最長の並びを取り除きます。
rtrim(str text [, characters text])textstr の末尾から、characters (既定ではスペース) に含まれる文字だけで構成される最長の並びを取り除きます。
trim([leadingtrailingboth] [characters] from str)
sort_order_ip(ip text)textIPv4 と IPv6 の範囲に対する並び順を表す文字列を返します。

数学関数と演算子

名前戻り値の型説明
abs(numeric n)integern の絶対値を返します。
round(numeric n, [s])numericn を小数点以下 s 桁に丸めます。
mod(numeric x, numeric y)integerx / y の余りを返します。
floor(numeric n)numericn 以下で最も近い整数を返します。
ceil(numeric n)numericn 以上で最も近い整数を返します。
power(numeric n, numeric s)numericns 乗します。
ln(numeric n)numericn の自然対数を計算します。
log(numeric n)numericn の常用対数 (底 10) を計算します。
log2(numeric n)numericn の底 2 の対数を計算します。
exp(numeric n)numeric数学定数 e の n 乗を返します。
sqrt(numeric n)numericn の平方根を計算します。

配列関数と演算子

名前戻り値の型説明
array_length(array a)integer各行について、配列 a の長さを返します。
array_contains(array a, expr e)boolean各行について、式 e の評価結果が配列 a に含まれていれば true を返します。
array_cat(array a, array b)array配列 a と配列 b の要素を結合した新しい配列を返します。
array_append(array a, expr e)array入力配列の全要素に続けて要素 e を追加した新しい配列を返します。
string_to_array(text s, delimiter, [,nullString])array入力文字列 s を指定した区切り文字で分割し、部分文字列の配列を返します。第 3 引数 nullString は省略可能で、指定した部分文字列を NULL に置換します。
array_to_string(array a, delimiter, [,nullString])string指定した区切り文字と (任意の) null 文字列を用いて配列要素を連結します。
unnest(array a)variable配列の各要素を 別々の行として返します。戻り値の型は配列の要素型です。
unnest はクエリの SELECT 句でのみ使用できます。unnest と一緒に他の列を SELECT した場合、テーブルの各行の値は、展開された各要素ごとに繰り返されます。複数列を展開する場合、展開列同士は行ごとに対応付けられ、短い配列の不足分には NULL が補われます。

日付/時刻 関数と演算子

名前戻り値の型説明
date_trunc(string precision, timestamp t)timestamptimestamp を指定の precision (“second”, “minute”, “hour”, “day”, “week”, “month”, “year”) に切り詰めます。
date_diff(string precision, timestamp t, timestamp t)integer指定した精度で、2 つの日時の差を返します。
to_timestamp(numeric n)timestampn を秒単位の時刻とみなして timestamp に変換します。

条件式

名前戻り値の型説明
coalesce(expr x, y, …)variable最初の NULL でない式を返します。
nullif(expr x, expr y)variable2 つの引数が等しい場合は NULL を返します。そうでない場合は x を返します。

JSON 関数と演算子

名前戻り値の型説明
json_extract_path_text(text json, text path…)text指定したパスで JSON のサブ オブジェクトを特定し、テキストとして抽出します。動作は、同名の Postgres 関数 と同等です。たとえば、json_extract_path_text(col, ‘forest') は、col の各 JSON オブジェクトに対してキー forest の値を返します。JSON 配列の構文例は下記を参照してください。
json_extract_path(text json, text path…)jsonjson_extract_path_text と同じ機能ですが、戻り値は text 型ではなく JSON 型の列になります。
json_build_object(key1 text, value1 json/text/int/float, key2 text, value2 json/text/int/float, …)json渡された引数に基づいて JSON オブジェクトを構築します。関数の引数は、生成する JSON オブジェクトのキーと値を、キー→値の順に交互に指定します。
row_to_json(table)jsonテーブルの各行を JSON 値として表現したものを返します。JSON のキーは列名、値は各行の各列の値です。

注記: row_to_json は列ではなくテーブル名を受け取ります。例: SELECT row_to_json(<table>) FROM <table>

JSON 配列

col の各 JSON オブジェクト (または行) について、JSON 配列の 0 番目の要素にあるキー forest の値を返します。

[{
"forest": "trees"
}]
json_extract_path_text(col, ‘0', ‘forest')