このトピックでは、分析ストア向けのマッピングテーブルから SELECT 文でデータをクエリする際にサポートされる SQL 関数について説明します。これには、時系列関数、時間関数、集計関数、数学関数、文字列関数が含まれます。
時系列関数
|
関数 |
出力タイプ |
説明 |
|
time_bin(_time, interval) |
日時 |
この関数を _time パラメーターには、時系列の時間列である _time を指定します。 interval パラメーターは文字列型で、データのバケット化を実行する間隔を指定します。 interval パラメーターには、各種時間単位の略語を指定できます。 例: |
|
tag_value_at(_tags, tag_key) |
Varchar |
時系列タグで指定されたキーに対応する値を返します。 _tags パラメーターには、時系列タグ列である _tags を指定します。 tag_key パラメーターには、時系列タグ内のキーを指定します。 |
時間関数
Tablestore コンソールで分析ストア機能を使用する場合、Datetime 型の出力値はシステムタイムゾーン (中国では UTC+8、北京時間) で表示されます。Tablestore SDK を使用して分析ストア機能を使用する場合、Datetime 型の出力値は UTC 時間に変換されます。ビジネス要件に基づいてタイムゾーンを変換できます。このトピックでは、UTC+8 タイムゾーンである北京時間を例として使用します。
|
関数 |
出力タイプ |
説明 |
|
from_unixtime(unix_timestamp) |
Datetime |
Unix タイムスタンプを Datetime 型の値に変換し、値のタイムゾーンを変換して、その値を返します。例えば、 unix_timestamp パラメーターには、秒精度の Unix タイムスタンプを指定します。 |
|
from_unixtime(unix_timestamp,fsp) |
Datetime |
Unix タイムスタンプを Datetime 型の値に変換し、値のタイムゾーンを変換して、fsp で指定した小数点以下の桁数に丸めた値を返します。例えば、 unix_timestamp パラメーターには、秒精度の Unix タイムスタンプを指定します。fsp パラメーターには精度を指定し、最大値は 6 です。fsp の値が 6 より大きい場合は例外が発生します。fsp の値が 0 未満の場合、値は丸められません。 |
|
from_unixtime_millis(unix_timestamp_millis) |
Datetime |
Unix タイムスタンプを Datetime 型の値に変換し、値のタイムゾーンを変換して、その値を返します。例えば、 unix_timestamp_millis パラメーターには、ミリ秒精度の Unix タイムスタンプを指定します。 |
|
from_unixtime_micros(unix_timestamp_micros) |
Datetime |
Unix タイムスタンプを Datetime 型の値に変換し、値のタイムゾーンを変換して、その値を返します。例えば、 unix_timestamp_micros パラメーターには、マイクロ秒精度の Unix タイムスタンプを指定します。 |
|
unix_timestamp() |
Double |
現在のタイムゾーンにおける現在時刻の秒精度の Unix タイムスタンプを返します。 |
|
unix_timestamp_millis() |
Double |
現在のタイムゾーンにおける現在時刻の Unix タイムスタンプを、最も近い秒に丸めた上でミリ秒精度で返します。例えば、 この関数は 重要
この関数が返すタイムスタンプにはミリ秒の桁がありますが、精度は秒単位であり、ミリ秒単位ではありません。 |
|
unix_timestamp_millis(datetime) |
Double |
datetime で指定されたタイムゾーンにおけるミリ秒精度の Unix タイムスタンプを返します。 datetime パラメーターには、Datetime 型の値を指定します。 |
|
unix_timestamp_millis(datestr) |
Double |
datestr で指定された日時のタイムゾーンにおけるミリ秒精度の Unix タイムスタンプを返します。例えば、 datestr パラメーターは、年、月、日を明示的に指定する必要がある日時文字列です。値の範囲は 重要
|
|
unix_timestamp_micros() |
Double |
現在のタイムゾーンにおける現在時刻のマイクロ秒レベルの Unix タイムスタンプを返します。精度は秒単位です。例えば、 この関数は 重要
この関数が返すタイムスタンプにはマイクロ秒の桁がありますが、精度は秒単位であり、マイクロ秒単位ではありません。 |
|
unix_timestamp_micros(datetime) |
Double |
datetime で指定されたタイムゾーンにおけるマイクロ秒レベルの Unix タイムスタンプを返します。 datetime パラメーターには、Datetime 型の値を指定します。 |
|
unix_timestamp_micros(datestr) |
Double |
datestr で指定された日時のタイムゾーンにおけるマイクロ秒精度の Unix タイムスタンプを返します。例えば、 datestr パラメーターの値は、年、月、日を明示的に指定する必要がある日時文字列です。値の範囲は 重要
|
|
timediff(expr1,expr2) |
Time |
expr1 パラメーターと expr2 パラメーターの差を返します。 expr パラメーターは、Datetime 型、Time 型、または文字列型にできます。 |
|
addtime(expr1,expr2) |
expr1 と同じ |
expr1 パラメーターと expr2 パラメーターの合計を返します。 expr1 パラメーターは Datetime 型または Time 型にでき、expr2 パラメーターは Time 型のみ指定できます。 |
|
date(datetime) |
Date |
datetime の日付部分を返します。 datetime パラメーターには、Datetime 型の値を指定します。 |
|
hour(expr) |
BigInt |
expr の時間部分を返します。 expr パラメーターは、Datetime 型または Time 型にできます。 |
|
minute(expr) |
BigInt |
expr の分部分を返します。 expr パラメーターは、Datetime 型または Time 型にできます。 |
|
second(expr) |
BigInt |
expr の秒部分を返します。 expr パラメーターは、Datetime 型または Time 型にできます。 |
|
microsecond(expr) |
BigInt |
expr のマイクロ秒部分を返します。 expr パラメーターは、Datetime 型または Time 型にできます。 |
|
month(expr) |
BigInt |
expr の月部分を返します。 expr パラメーターは、Datetime 型または Date 型にできます。 |
|
year(expr) |
BigInt |
expr の年部分を返します。 expr パラメーターは、Datetime 型または Date 型にできます。 |
|
week(expr) |
BigInt |
expr パラメーターで指定された日付が該当する年間通算週を返します。 expr パラメーターは、Datetime 型または Date 型にできます。 |
|
week(expr,mode) |
BigInt |
expr パラメーターで指定された日付が該当する年間通算週を返します。年間通算週の計算方法は、mode パラメーターで指定します。 expr パラメーターは、Datetime 型または Date 型にできます。
|
|
weekday(expr) |
BigInt |
指定された日付の曜日に対応するインデックス値を返します。戻り値 0 は月曜日、1 は火曜日を示し、以降同様に 6 は日曜日を示します。 expr パラメーターは、Datetime 型または Date 型にできます。 |
|
weekofyear(expr) |
BigInt |
指定された日付の年間通算週を返します。値の範囲は 1 から 53 です。WEEKOFYEAR は WEEK(date, 3) と同等です。 expr パラメーターは、Datetime 型または Date 型にできます。 |
|
dayofmonth(expr) |
BigInt |
指定された日付の月内の日を返します。戻り値の範囲は 1 から 31 です。 expr パラメーターは、Datetime 型または Date 型にできます。 |
|
dayofweek(expr) |
BigInt |
指定された日付の曜日に対応するインデックス値を返します。戻り値 1 は日曜日、2 は月曜日を示し、以降同様に 7 は土曜日を示します。 expr パラメーターは、Datetime 型または Date 型にできます。 |
|
dayofyear(expr) |
BigInt |
指定された日付の年間通算日を返します。戻り値の範囲は 1 から 366 です。 expr パラメーターは、Datetime 型または Date 型にできます。 |
|
monthname(expr) |
Varchar |
expr パラメーターで指定された日付の月のフルネームを返します。 expr パラメーターは、Datetime 型または Date 型にできます。 |
|
dayname(expr) |
Varchar |
expr パラメーターで指定された日付の曜日のフルネームを返します。 expr パラメーターは、Datetime 型または Date 型にできます。 |
集計関数
|
関数 |
出力タイプ |
説明 |
|
count(expr) |
Bigint |
SELECT 文で取得した行のうち、指定した列の値が NULL でない行数を返します。結果は Bigint 型です。 |
|
sum(expr) |
expr と同じ型 |
expr の合計を返します。 クエリ結果が空の場合、NULL を返します。 |
|
avg(expr) |
Double |
expr の平均値を返します。 クエリ結果が空の場合、NULL を返します。 |
|
min(expr) |
expr と同じ型 |
expr の最小値を返します。 expr の値が文字列の場合、出力は辞書順で最も小さい文字列です。 |
|
max(expr) |
expr と同じ型 |
expr の最大値を返します。 expr の値が文字列の場合、出力は辞書順で最も大きい文字列です。 |
|
max_by(expr1,expr2) |
expr1 と同じ型 |
expr2 の値が最大となる行の、expr1 の値を返します。 その行の expr1 の値が NULL の場合は、NULL を返します。expr1 と expr2 の値は、両方とも文字列にすることができます。 |
|
min_by(expr1,expr2) |
expr1 と同じ型 |
expr2 の値が最小となる行の、expr1 の値を返します。 その行の expr1 の値が NULL の場合は、NULL を返します。expr1 と expr2 の値は、両方とも文字列にすることができます。 |
|
bit_and(expr) |
Bigint |
expr に対するビット単位の AND 演算の結果を返します。 クエリ結果が空の場合、すべてのビットが 1 に設定された 64 ビット整数を返します。 |
|
bit_or(expr) |
Bigint |
expr に対するビット単位の OR 演算の結果を返します。 クエリ結果が空の場合、すべてのビットが 0 に設定された 64 ビット整数を返します。 |
|
bit_xor(expr) |
Bigint |
expr に対するビット単位の XOR 演算の結果を返します。 クエリ結果が空の場合、すべてのビットが 0 に設定された 64 ビット整数を返します。 |
|
std(expr) |
Double |
expr の母集団の標準偏差を返します。std、stddev、stddev_pop は同義の関数です。 クエリ結果が空の場合、NULL を返します。 |
|
stddev(expr) |
Double |
|
|
stddev_pop(expr) |
Double |
|
|
stddev_samp(expr) |
Double |
expr の標本の標準偏差を返します。 クエリ結果が空の場合、NULL を返します。 |
|
var_pop(expr) |
Double |
expr の母集団の分散を返します。 var_pop と variance は同義の関数です。 クエリ結果が空の場合、NULL を返します。 |
|
variance(expr) |
Double |
|
|
var_samp(expr) |
Double |
expr の標本の分散を返します。 クエリ結果が空の場合、NULL を返します。 |
数学関数
|
関数 |
出力タイプ |
説明 |
|
mod(x,y) |
x と同じ型 |
x を y で割った剰余を返します。 y が 0 の場合、0 を返します。 |
|
abs(x) |
x と同じ型 |
x の絶対値を返します。 |
|
ceil(x) |
x と同じ型 |
x を切り上げた整数を返します。 |
|
floor(x) |
x と同じ型 |
x を切り捨てた整数を返します。 |
|
round(x) |
x と同じ型 |
x を最も近い整数に丸めた値を返します。 |
|
round(x,y) |
x と同じ型 |
x を小数点以下 y 桁に丸めた値を返します。 |
|
acos(x) |
Double |
x のアークコサインを返します。これは x の値が -1~1 の範囲にない場合、NULL を返します。 |
|
asin(x) |
Double |
x のアークサインを返します。これは x の値が -1~1 の範囲にない場合、NULL を返します。 |
|
atan(x) |
Double |
x のアークタンジェントを返します。これは |
|
atan2(x,y) |
Double |
2 つの変数 x と y のアークタンジェントを返します。 |
|
cos(x) |
Double |
x のコサインを返します。x の単位はラジアンです。 |
|
sin(x) |
Double |
x のサインを返します。x の単位はラジアンです。 |
|
tan(x) |
Double |
x のタンジェントを返します。x の単位はラジアンです。 |
|
exp(x) |
Double |
e (自然対数の底) の x 乗の値を返します。 |
|
pow(x,y) |
Double |
x の y 乗の値を返します。 |
|
radians(x) |
Double |
x を度からラジアンに変換した値を返します。 重要
π ラジアンは 180 度に相当します。 |
|
sqrt(x) |
Double |
x の平方根を返します。 |
|
sign(x) |
Bigint |
パラメーター x の値が負、ゼロ、または正かどうかに応じて、-1、0、または 1 を返します。 |
|
pi() |
Double |
円周率、すなわち π の値を返します。 |
|
ln(x) |
Double |
x の自然対数、すなわち底が e の x の対数を返します。 x が 0 以下の場合、NULL を返します。 |
|
log2(x) |
Double |
x の二進対数を返します。 x が |
|
log10(x) |
Double |
底が 10 の x の対数を返します。 x が |
文字列関数
|
関数 |
出力タイプ |
説明 |
|
length(str) |
Bigint |
文字列の長さをバイト単位で返します。 |
|
concat(str1,str2...) |
Varchar |
文字列の連結の結果を返します。複数の文字列を指定できます。 |
|
to_base64(str) |
Varchar |
str パラメーターで指定された文字列の Base64 エンコード結果を返します。 |
|
hex(str) |
Varchar |
str パラメーターの値について、各文字の各バイトを 2 桁の 16 進数に変換し、それらを連結した文字列表現を返します。 |
|
hex(number) |
Varchar |
数値 number の 16 進数の文字列表現を返します。たとえば、 |
|
instr(str1,substr) |
Bigint |
str1 パラメーターで指定された文字列内で、substr パラメーターの値が最初に出現する位置を返します。 |
|
lower(str) |
Varchar |
str パラメーターで指定された文字列を小文字に変換して返します。 |
|
ltrim(str) |
Varchar |
str パラメーターの値から先頭のスペースを削除した文字列を返します。 |
|
lpad(str,len,padstr) |
Varchar |
str パラメーターの値を、その長さが len パラメーターで指定された値と一致するまで、左側から padstr パラメーターの値でパディングし、その結果の文字列を返します。 str パラメーターの値の長さが len パラメーターで指定された値より大きい場合、戻り値は len パラメーターで指定された長さに切り詰められます。たとえば、 |
|
rtrim(str) |
Varchar |
str パラメーターの値から末尾のスペースを削除した文字列を返します。 |
|
rpad(str,len,padstr) |
Varchar |
str パラメーターの値を、その長さが len パラメーターで指定された値と一致するまで、右側から padstr パラメーターの値でパディングし、その結果の文字列を返します。 str パラメーターの値の長さが len パラメーターで指定された値より大きい場合、戻り値は len パラメーターで指定された長さに切り詰められます。 |
|
trim(str) |
Varchar |
str パラメーターの値から先頭と末尾のスペースを削除した文字列を返します。 |
|
substr(str,pos1,pos2) |
Varchar |
str パラメーターの値から、pos1 パラメーターで指定された文字から始まる、pos2 パラメーターで指定された文字数の文字を抽出して返します。 関数で pos2 パラメーターが指定されていない場合、pos1 パラメーターで指定された文字以降のすべての文字を抽出して返します。 |
|
replace(str,from_str,to_str) |
Varchar |
str パラメーターの値に含まれる from_str パラメーターのすべての値を to_str パラメーターの値に置換した文字列を返します。 from_str パラメーターの検索はケースセンシティブです。 |
|
reverse(str) |
Varchar |
str パラメーターの値を反転した文字列を返します。 |
|
upper(str) |
Varchar |
str パラメーターの値を大文字に変換して返します。 |
