このトピックでは、分析ストア用に作成されたマッピングテーブルを使用して SELECT 文を実行してデータをクエリする場合にサポートされる SQL 関数について説明します。これには、時系列関数、時間関数、集計関数、数学関数、および文字列関数が含まれます。
時系列関数
関数 | 出力タイプ | 説明 |
time_bin(_time,interval) | Datetime | この関数を group by と共に使用すると、時間でデータをバケット化します。たとえば、 _time パラメーターは、時系列の時間列 _time を指定します。 interval パラメーターは String 型で、データのバケット化を実行する間隔を指定します。 interval パラメーターは、さまざまな時間単位の省略形を使用して指定できます。例: |
tag_value_at(_tags,tag_key) | Varchar | 時系列タグ内の指定されたキーに対応する値を返します。 _tags パラメーターは、時系列のタグ列 _tags を指定し、tag_key パラメーターは、時系列タグ内のキーを指定します。 |
時間関数
Tablestore コンソールの分析ストア機能を使用する場合、Datetime 型の出力値はシステムタイムゾーン(中国の場合は UTC + 08:00、北京時間)です。 Tablestore SDK を使用して分析ストア機能を使用する場合、Datetime 型の出力値は UTC 時間に変換されます。ビジネス要件に基づいてタイムゾーンを変換できます。このトピックでは、UTC + 08:00 タイムゾーンである北京時間を例として使用します。
関数 | 出力タイプ | 説明 |
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 パラメーターは、年、月、日を明示的に指定する必要がある時間文字列です。値の範囲は、UTC の 重要
|
unix_timestamp_micros() | Double | 現在のタイムゾーンで、現在の時刻のマイクロ秒レベルの UNIX タイムスタンプを返します。精度は秒単位です。たとえば、 この関数は 重要 この関数によって返されるタイムスタンプにはマイクロ秒の桁がありますが、精度はマイクロ秒ではなく秒単位です。 |
unix_timestamp_micros(datetime) | Double | datetime のタイムゾーンで、マイクロ秒レベルの UNIX タイムスタンプを返します。 datetime パラメーターは、Datetime 型の時間です。 |
unix_timestamp_micros(datestr) | Double | datestr に対応する日時の、そのタイムゾーンにおけるマイクロ秒単位で正確な UNIX タイムスタンプを返します。たとえば、 datestr パラメーターの値は、年、月、日を明示的に指定する必要がある時間文字列です。値の範囲は、UTC の 重要
|
timediff(expr1,expr2) | Time | expr1 パラメーターと expr2 パラメーターの差を計算します。 expr パラメーターは、Datetime 型、Time 型、または String 型にすることができます。 |
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 型にすることができます。次の図は、mode パラメーターの値の範囲を示しています(MySQL と互換性があります)。
|
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 フィールドの値を返します。 expr2 フィールドの値が最大である行の expr1 フィールドの値が NULL の場合、NULL が返されます。 expr1 フィールドと expr2 フィールドの値は、同時に文字列にすることができます。 |
min_by(expr1,expr2) | expr1 と同じタイプ | expr2 フィールドの値が最小である行の expr1 フィールドの値を返します。 expr2 フィールドの値が最小である行の 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 は 3 つの同等の関数です。 クエリ結果が空の場合、NULL が返されます。 |
stddev(expr) | Double | |
stddev_pop(expr) | Double | |
stddev_samp(expr) | Double | expr フィールドの標本標準偏差を返します。 クエリ結果が空の場合、NULL が返されます。 |
var_pop(expr) | Double | expr フィールドの母集団分散を返します。 var_pop と variance は 2 つの同等の関数です。 クエリ結果が空の場合、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 の自然対数、つまり x の e を底とする対数を返します。 x が 0 以下の場合、NULL が返されます。 |
log2(x) | Double | x の二進対数を返します。 x が |
log10(x) | Double | x の 10 を底とする対数を返します。 x が |
文字列関数
関数 | 出力タイプ | 説明 |
length(str) | Bigint | 文字列の長さをバイト単位で返します。 |
concat(str1,str2...) | Varchar | 文字列連結の結果を返します。複数の文字列を指定できます。 |
to_base64(str) | Varchar | str パラメーターで指定された文字列の Base64 エンコードされた結果を返します。 |
hex(str) | Bigint | str パラメーターの値の 16 進数文字列表現を返します。ここで、str パラメーターの値の各文字の各バイトは 2 つの 16 進数に変換されます。 |
hex(str) | Varchar | x の 16 進数文字列表現を返します。たとえば、 |
instr(str1,substr) | Bigint | str パラメーターで指定された文字列内で substr パラメーターの値が最初に出現する位置を返します。 |
lower(str) | Varchar | str パラメーターで指定された文字列の小文字を返します。 |
ltrim(str) | Varchar | str パラメーターの値から先頭のスペースが削除された後に取得された文字列を返します。 |
lpad(str,len,padstr) | Varchar | str パラメーターの値の左側に padstr パラメーターの値を埋め込み、長さが len パラメーターで指定された値と一致するまで埋め込みを行い、結果として得られる埋め込み文字列を返します。 str パラメーターの値の長さが len パラメーターで指定された値より大きい場合、戻り値は len パラメーターで指定された長さに切り詰められます。たとえば、 |
rtrim(str) | Varchar | str パラメーターの値から末尾のスペースが削除された後に取得された文字列を返します。 |
rpad(str,len,padstr) | Varchar | str パラメーターの値の右側に padstr パラメーターの値を埋め込み、長さが len パラメーターで指定された値と一致するまで埋め込みを行い、結果として得られる埋め込み文字列を返します。 str パラメーターの値の長さが len パラメーターで指定された値より大きい場合、戻り値は len パラメーターで指定された長さに切り詰められます。 |
trim(str,len,padstr) | Varchar | str パラメーターの値から先頭と末尾のスペースが削除された後に取得された文字列を返します。 |
substr(str,pos1,pos2) | Varchar | str パラメーターの値から pos2 パラメーターで指定された特定の数の文字を抽出し、抽出結果を返します。抽出は、pos1 パラメーターで指定された文字から開始されます。 関数の pos2 パラメーターが指定されていない場合、pos1 パラメーターで指定された文字から始まるすべての文字が、返される文字列として抽出されます。 |
replace(str,from_str,to_str) | Varchar | str パラメーターの値のすべての from_str パラメーターの値が to_str パラメーターの値に置き換えられた後に取得された文字列を返します。 from_str パラメーターの値の検索では、大文字と小文字が区別されます。 |
reverse(str) | Varchar | str パラメーターの値が反転された後に取得された結果を返します。 |
upper(str) | Varchar | str パラメーターの値を大文字で返します。 |
