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

Lindorm:関数

最終更新日:Jan 14, 2025

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

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

  • スカラー関数は、値を取得して出力を生成するために使用されます。

  • ネイティブ集計関数は、SELECT ステートメントによって返される複数の行の値を集計するために使用されます。

説明

Lindorm CQL は、複数のネイティブ ハードコード関数を備えています。

次の表に、一般的なスカラー関数とネイティブ集計関数について説明します。

タイプ

関数

スカラー関数

castnowmaxTimeuuidminTimeuuid、時間変換関数、および blob 変換関数

ネイティブ集計関数

countsumavgmin、および max

Cast

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

データ型

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

ソース データ型

変換先データ型

ascii

text

bigint

tinyintsmallintintfloatdoubledecimalvarint、または text

boolean

text

counter

tinyintsmallintintbigintfloatdoubledecimalvarint、または text

date

timestamp

decimal

tinyintsmallintintbigintfloatdoublevarint、または text

double

tinyintsmallintintbigintfloatdecimalvarint、または text

float

tinyintsmallintintbigintdoubledecimalvarint、または text

inet

text

int

tinyintsmallintbigintfloatdoubledecimalvarint、または text

time

text

timestamp

date または text

timeuuid

timestampdate、または text

tinyint

tinyintsmallintintbigintfloatdoubledecimalvarint、または text

uuid

text

varint

tinyintsmallintintbigintfloatdoubledecimal、または text

使用上の注意

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

CREATE TABLE persioninfo (c1 int PRIMARY KEY, c2 timeuuid);
SELECT avg(cast(c1 as double)) FROM persioninfo; // c1 列を double 型にキャストして平均値を求める

Now

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

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

SELECT * FROM persioninfo WHERE c2 = now(); // c2 列が現在の時刻と一致する行を検索 (結果は返されない)

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 ; // c2 列が指定された範囲内の TimeUUID である行を検索

Datetime

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

関数

出力タイプ

currentTimestamp

Timestamp

currentDate

date

currentTime

time

currentTimeUUID

timeUUID

時間変換

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

関数

入力タイプ

説明

toDate

timeuuid

timeuuid 型を date 型に変換します。

toDate

timestamp

timestamp 型を date 型に変換します。

toTimestamp

timeuuid

timeuuid 型を timestamp 型に変換します。

toTimestamp

date

date 型を timestamp 型に変換します。

toUnixTimestamp

timeuuid

timeuuid 型を bigint 型に変換します。

toUnixTimestamp

timestamp

timestamp 型を bigint(raw)型に変換します。

toUnixTimestamp

date

date 型を 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)); // c2 列に 16 進数 0x0000000000000003 を bigint 値として挿入

Count

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

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

SELECT COUNT (*) FROM persioninfo; // persioninfo テーブルの全行数をカウント
SELECT COUNT (1) FROM persioninfo; // persioninfo テーブルの全行数をカウント (別の書き方)

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

SELECT COUNT (c2) FROM persioninfo; // persioninfo テーブルの c2 列に値が入っている行数をカウント

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; // c2 列の最小値と最大値を取得

Sum

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

SELECT sum(c2) FROM persioninfo ; // c2 列の値の合計を計算

Avg

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

SELECT avg(c2) FROM persioninfo ; // c2 列の値の平均を計算