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

ApsaraDB for HBase:関数

最終更新日:Jan 16, 2025

このトピックでは、Lindorm Cassandra Query Language(CQL)でサポートされている関数について説明します。また、これらの関数の使用方法についても説明します。

Lindorm CQL は、スカラー関数とネイティブ集計関数の次のカテゴリの関数をサポートしています。

  • スカラー関数は、値を取得して出力を生成するために使用されます。
  • ネイティブ集計関数は、SELECT ステートメントによって返される複数の行の値を集計するために使用されます。
説明 Lindorm CQL は、複数のネイティブ ハードコード関数を備えています。

次の表に、一般的なスカラー関数とネイティブ集計関数を示します。

種類関数
スカラー関数castnowmaxTimeuuidminTimeuuid、時間変換関数、および blob 変換関数
ネイティブ集計関数countsumavgmin、および max

Cast

cast 関数は、データをあるネイティブ データ型から別のデータ型に変換するために使用されます。

データ型の変換

次の表に、cast 関数で変換できるソース データ型と、各ソース データ型を変換できる変換先データ型を示します。

ソース データ型変換先データ型
asciitext
biginttinyintsmallintintfloatdoubledecimalvarint、または text
booleantext
countertinyintsmallintintbigintfloatdoubledecimalvarint、または text
datetimestamp
decimaltinyintsmallintintbigintfloatdoublevarint、または text
doubletinyintsmallintintbigintfloatdecimalvarint、または text
floattinyintsmallintintbigintdoubledecimalvarint、または text
inettext
inttinyintsmallintbigintfloatdoubledecimalvarint、または text
timetext
timestampdate または text
timeuuidtimestampdate、または text
tinyinttinyintsmallintintbigintfloatdoubledecimalvarint、または text
uuidtext
varinttinyintsmallintintbigintfloatdoubledecimal、または text
注記

変換は Java のセマンティクスに厳密に依存します。

CREATE TABLE persioninfo (c1 int PRIMARY KEY, c2 timeuuid);
SELECT avg(cast(c1 as double)) FROM persioninfo;

Now

now 関数は、現在時刻を返すために使用されます。

now 関数はパラメーターを受け入れません。この関数を呼び出すと、システムはコーディネーター ノードで timeuuid 形式の新しい一意の値を生成します。WHERE 句に now 関数を指定すると、結果は返されません。このようにして、now 関数によって返される各値は一意であることが保証されます。次のコードは例を示しています。

SELECT * FROM persioninfo WHERE c2 = now()

maxTimeuuid 関数と minTimeuuid 関数

maxTimeuuid 関数は、タイムスタンプまたは日付文字列のタイムスタンプ値を受け入れ、そのタイムスタンプ値の最大の TimeUUID を返します。minTimeuuid 関数は、タイムスタンプまたは日付文字列のタイムスタンプ値を受け入れ、そのタイムスタンプ値の最小の TimeUUID を返します。

SELECT * FROM persioninfo WHERE c2 > maxTimeuuid('2013-01-01 00:05+0000')    AND c2 < minTimeuuid('2013-02-02 10:00+0000') ALLOW FILTERING ;

Datetime

日付または時刻関連の関数は、関数が呼び出された日付または時刻を取得するために使用されます。

関数出力型
currentTimestampTimestamp
currentDatedate
currentTimetime
currentTimeUUIDtimeUUID

時間変換

時間変換関数は、timeuuid データ、タイムスタンプ、または日付を Lindorm CQL でサポートされているネイティブ データ型に変換するために使用されます。

関数入力型説明
toDatetimeuuidtimeuuid 型を date 型に変換します。
toDatetimestamptimestamp 型を date 型に変換します。
toTimestamptimeuuidtimeuuid 型を timestamp 型に変換します。
toTimestampdatedate 型を timestamp 型に変換します。
toUnixTimestamptimeuuidtimeuuid 型を bigint 型に変換します。
toUnixTimestamptimestamptimestamp 型を bigint(raw)型に変換します。
toUnixTimestampdatedate 型を bigint(raw)型に変換します。

Blob 変換

blob 変換関数は、ネイティブ データ型をバイナリ データまたは blob に変換するために使用されます。

Lindorm CQL でサポートされている各ネイティブ データ型について、typeAsBlob 関数はそのデータ型のパラメーター値を受け入れ、blob として返します。blobAsType 関数は 64 ビット バイナリ データのみを受け入れ、データを bigint 値に変換します。たとえば、bigintAsBlob(3) は 0x0000000000000003 を返し、blobAsBigint(0x0000000000000003) は 3 を返します。

CREATE TABLE persioninfo (c1 text PRIMARY KEY, c2 bigint);
INSERT INTO persioninfo (c1, c2) VALUES ( '11', blobAsBigint(0x0000000000000003));

Count

count 関数は、指定された列にある空でない値の数をカウントするために使用されます。この関数は、返された行の数をカウントするためにも使用できます。

返された行の数を計算します。

SELECT COUNT (*) FROM persioninfo;
SELECT COUNT (1) FROM persioninfo;

指定された列にある空でない値の数を計算します。

SELECT COUNT (c2) FROM persioninfo;

max 関数と min 関数

max 関数は、指定された列の最大値を返すために使用されます。min 関数は、指定された列の最小値を返すために使用されます。

CREATE TABLE persioninfo (c1 text PRIMARY KEY, c2 int);
INSERT INTO persioninfo (c1, c2) VALUES ('k1', 3);
INSERT INTO persioninfo (c1, c2) VALUES ('k2', 4);
SELECT min(c2), max(c2) FROM persioninfo;

Sum

sum 関数は、指定された列のすべての値を加算するために使用されます。

SELECT sum(c2) FROM persioninfo ;

Avg

avg 関数は、指定された列のすべての値の平均を計算するために使用されます。

SELECT avg(c2) FROM persioninfo ;