すべてのプロダクト
Search
ドキュメントセンター

Tablestore:サポートされている SQL 関数

最終更新日:May 14, 2025

このトピックでは、分析ストア用に作成されたマッピングテーブルを使用して SELECT 文を実行してデータをクエリする場合にサポートされる SQL 関数について説明します。これには、時系列関数、時間関数、集計関数、数学関数、および文字列関数が含まれます。

時系列関数

関数

出力タイプ

説明

time_bin(_time,interval)

Datetime

この関数を group by と共に使用すると、時間でデータをバケット化します。たとえば、group by time_bin(_time,"10s") を使用して、データを 10 秒ごとにバケット化できます。また、集計関数を使用して、バケット内のデータを計算することもできます。

_time パラメーターは、時系列の時間列 _time を指定します。 interval パラメーターは String 型で、データのバケット化を実行する間隔を指定します。 interval パラメーターは、さまざまな時間単位の省略形を使用して指定できます。例: group by time_bin(_time,"10s")group by time_bin(_time,"30min")group by time_bin(_time,"1h")group by time_bin(_time,"1d")group by time_bin(_time,"10day")

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 型の値に変換し、値のタイムゾーンを変換して、値を返します。たとえば、from_unixtime(1447430881) の戻り値は '2015-11-13 10:08:01' です。

unix_timestamp パラメーターは、秒単位で正確な UNIX タイムスタンプを指定します。

from_unixtime(unix_timestamp,fsp)

Datetime

UNIX タイムスタンプを Datetime 型の値に変換し、値のタイムゾーンを変換して、fsp 小数点以下に丸めた値を返します。たとえば、from_unixtime(1447430881.132216,3) の戻り値は '2015-11-14 00:08:01.132' です。

unix_timestamp パラメーターは、秒単位で正確な UNIX タイムスタンプを指定します。 fsp パラメーターは精度を指定し、最大値は 6 です。fsp の値が 6 より大きい場合、例外がスローされます。 fsp の値が 0 未満の場合、値は丸められません。

from_unixtime_millis(unix_timestamp_millis)

Datetime

UNIX タイムスタンプを Datetime 型の値に変換し、値のタイムゾーンを変換して、値を返します。たとえば、from_unixtime_millis(1447430881231) の戻り値は '2015-11-14 00:08:01.231000' です。

unix_timestamp_millis パラメーターは、ミリ秒単位で正確な UNIX タイムスタンプを指定します。

from_unixtime_micros(unix_timestamp_micros)

Datetime

UNIX タイムスタンプを Datetime 型の値に変換し、値のタイムゾーンを変換して、値を返します。たとえば、from_unixtime_micros(1447430881231781) の戻り値は '2015-11-14 00:08:01.231781' です。

unix_timestamp_micros パラメーターは、マイクロ秒単位で正確な UNIX タイムスタンプを指定します。

unix_timestamp()

Double

現在のタイムゾーンで、現在の時刻の秒単位で正確な UNIX タイムスタンプを返します。

unix_timestamp_millis()

Double

現在のタイムゾーンで、現在の時刻のミリ秒単位で最も近い秒に丸めた UNIX タイムスタンプを返します。たとえば、unix_timestamp_millis() の戻り値は 1686299575000 です。

この関数は unix_timestamp() *1000 と同等です。

重要

この関数によって返されるタイムスタンプにはミリ秒の桁がありますが、精度はミリ秒ではなく秒単位です。

unix_timestamp_millis(datetime)

Double

datetime のタイムゾーンで、ミリ秒単位で正確な UNIX タイムスタンプを返します。

datetime パラメーターは、Datetime 型の時間を指定します。

unix_timestamp_millis(datestr)

Double

datestr に対応する日付の、そのタイムゾーンにおけるミリ秒単位で正確な UNIX タイムスタンプを返します。たとえば、unix_timestamp_millis("2023-06-09 16:23:31.000000") の戻り値は 1686299011000.000000 です。

datestr パラメーターは、年、月、日を明示的に指定する必要がある時間文字列です。値の範囲は、UTC の 1970-01-01 00:00:01.000000 から 2038-01-19 03:14:07.999999 です。

重要
  • datestr パラメーターは年、月、日を指定する必要があるため、select unix_timestamp_millis("2023-07") などの無効な datestr パラメーターが入力された場合、結果は null になります。

  • datestr パラメーターの値が値の範囲(UTC の 1970-01-01 00:00:01.000000 から 2038-01-19 03:14:07.999999)を超える場合、結果は 0 になります。

unix_timestamp_micros()

Double

現在のタイムゾーンで、現在の時刻のマイクロ秒レベルの UNIX タイムスタンプを返します。精度は秒単位です。たとえば、unix_timestamp_micros() の戻り値は 1686299575000000 です。

この関数は unix_timestamp() *1000000 と同等です。

重要

この関数によって返されるタイムスタンプにはマイクロ秒の桁がありますが、精度はマイクロ秒ではなく秒単位です。

unix_timestamp_micros(datetime)

Double

datetime のタイムゾーンで、マイクロ秒レベルの UNIX タイムスタンプを返します。

datetime パラメーターは、Datetime 型の時間です。

unix_timestamp_micros(datestr)

Double

datestr に対応する日時の、そのタイムゾーンにおけるマイクロ秒単位で正確な UNIX タイムスタンプを返します。たとえば、unix_timestamp_micros("2023-06-09 16:23:31.000000") の戻り値は 1686299011000000.000000 です。

datestr パラメーターの値は、年、月、日を明示的に指定する必要がある時間文字列です。値の範囲は、UTC の 1970-01-01 00:00:01.000000 から 2038-01-19 03:14:07.999999 です。

重要
  • datestr パラメーターに値を指定する場合、年、月、日を指定する必要があります。 select unix_timestamp_micros("2023-07") などの無効な値が datestr パラメーターに指定された場合、戻り値は null になります。

  • datestr パラメーターの値が値の範囲(UTC の 1970-01-01 00:00:01.000000 から 2038-01-19 03:14:07.999999)を超える場合、戻り値は 0 になります。

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 と互換性があります)。

image.png

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 の逆余弦、つまり cos(y)=x のときの y の値を返します。

x の値が -1 ~ 1 の範囲内にない場合、NULL が返されます。

asin(x)

Double

x の逆正弦、つまり sin(y)=x のときの y の値を返します。

x の値が -1 ~ 1 の範囲内にない場合、NULL が返されます。

atan(x)

Double

x の逆正接、つまり tan(y)=x のときの y の値を返します。

atan2(x,y)

Double

2 つの変数 x と y の逆正接を返します。このプロセスは、y/x の逆正接を計算する場合と似ていますが、両方のパラメーターの符号を使用して結果の象限を決定するという点が異なります。

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 が 0.0E0 以下の場合、NULL が返されます。

log10(x)

Double

x の 10 を底とする対数を返します。

x が 0.0E0 以下の場合、NULL が返されます。

文字列関数

関数

出力タイプ

説明

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 進数文字列表現を返します。たとえば、hex(255) の戻り値は 'FF' です。

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 パラメーターで指定された長さに切り詰められます。たとえば、lpad("aa",3,"0") の戻り値は "0aa" で、lpad("aa",1,"0") の戻り値は "a" です。

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 パラメーターの値を大文字で返します。