tencent cloud

Data Lake Compute

製品概要
プロダクト概要
製品の強み
適用シーン
購入ガイド
課金概要
返金説明
支払い期限切れ説明
設定調整費用の説明
クイックスタート
新規ユーザー開通フルプロセス
DLC データインポートガイド
DLCデータ分析の1分間入門
DLC権限管理の1分間入門
パーティションテーブル1分間入門
データ最適化をオンにする
クロスソース分析 EMR Hive データ
標準エンジン構成ガイド
操作ガイド
コンソール操作紹介
開発ガイド
実行環境
SparkJar ジョブ開発ガイド
PySparkジョブ開発ガイド
「クエリパフォーマンス最適化ガイド」
UDF 関数開発ガイド
システム制約
クライアントアクセス
JDBCアクセス
TDLC コマンドラインツールにアクセス
サードパーティソフトウェア連携
Python にアクセス
実践チュートリアル
DLC を Power BI に接続
テーブル作成の実践
Apache Airflowを使用してDLCエンジンのタスクをスケジュールして送信する
StarRocks は DLC 内部ストレージを直接クエリします
Spark の計算コスト最適化プラクティス
DATA + AI
ロールSSOを使用してDLCにアクセスする
SQL構文
SuperSQL構文
標準 Spark 構文概要
標準 Presto 構文の概要
予約語
API Documentation
History
Introduction
API Category
Making API Requests
Data Table APIs
Task APIs
Metadata APIs
Service Configuration APIs
Permission Management APIs
Database APIs
Data Source Connection APIs
Data Optimization APIs
Data Engine APIs
Resource Group for the Standard Engine APIs
Data Types
Error Codes
一般クラスリファレンス
エラーコード
クォータと制限
サードパーティソフトウェアでDLCに接続する操作ガイド
よくあるご質問
権限に関するよくあるご質問
エンジン類のよくある質問
機能に関するよくあるご質問
Sparkジョブクラスに関するよくある質問
DLC ポリシー
プライバシーポリシー
データプライバシーとセキュリティ契約
お問い合わせ

集約関数

PDF
フォーカスモード
フォントサイズ
最終更新日: 2025-12-25 12:00:07

APPROX_COUNT_DISTINCT

関数構文:
APPROX_COUNT_DISTINCT(<expr> any [, <relativeSD> integer|double|decimal])
サポートエンジン:SparkSQL
使用説明:HyperLogLog++が推定した基数を返します。relativeSDは許容される最大相対標準偏差を定義します。
戻り値の型:bigint
例:
SELECT approx_count_distinct(col1) FROM (VALUES (1), (1), (2), (2), (3)) tab(col1);
3

AVG

関数構文:
AVG(<expr> integer|double|decimal)
サポートエンジン:SparkSQL、Presto
使用説明:グループの値に基づいて計算された平均値を返します。
戻り値の型:double
例:
> SELECT avg(col) FROM (VALUES (1), (2), (3)) AS tab(col);
2.0
> SELECT avg(col) FROM (VALUES (1), (2), (NULL)) AS tab(col);
1.5

CORR

関数構文:
CORR(<expr> integer|double|decimal, <expr> integer|double|decimal)
サポートエンジン:SparkSQL、Presto
使用説明:一連の数値ペア間のピアソン相関係数を返します。
戻り値の型:double
例:
> SELECT corr(c1, c2) FROM (VALUES (3, 2), (3, 3), (6, 4)) as tab(c1, c2);
0.8660254037844387

COUNT

関数構文:
COUNT(*)
COUNT([DISTINCT] <col1> ANY, <col2> ANY, ...)
サポートエンジン:SparkSQL、Presto
使用説明: COUNT(*):検索された行の総数を返します。nullを含む行も含まれます。 COUNT(<col1> ANY, <col2> ANY, ...):指定された式がすべて非nullである行数を返します。 COUNT([DISTINCT] <col1> ANY,<col2> ANY, ...):指定された式が一意かつ非nullである行数を返します。
戻り値の型:integer
例:
> SELECT count(*) FROM (VALUES (NULL), (5), (5), (20)) AS tab(col);
4
> SELECT count(col) FROM (VALUES (NULL), (5), (5), (20)) AS tab(col);
3
> SELECT count(DISTINCT col) (FROM VALUES (NULL), (5), (5), (10)) AS tab(col);
2

COUNT_IF

関数構文:
COUNT_IF(<expr> ANY)
サポートエンジン:SparkSQL、Presto
使用説明:式がTRUEである行数を返します。
戻り値の型:int
例:
> SELECT count_if(col % 2 = 0) FROM (VALUES (NULL), (0), (1), (2), (3)) AS tab(col);
2
> SELECT count_if(col IS NULL) FROM (VALUES (NULL), (0), (1), (2), (3)) AS tab(col);
1

COVER_POP

関数構文:
COVAR_POP(<expr1> integer|double|decimal, <expr2> integer|double|decimal)
サポートエンジン:SparkSQL、Presto
使用説明:一組の数値ペアの母共分散を返します。
戻り値の型:double
例:
> SELECT covar_pop(c1, c2) FROM (VALUES (1,1), (2,2), (3,3)) AS tab(c1, c2);
0.6666666666666666

COVER_SAMP

関数構文:
COVAR_SAMP(<expr1> integer|double|decimal, <expr2> integer|double|decimal)
サポートエンジン:SparkSQL、Presto
使用説明:一組の数値ペアの標本共分散を返します。
戻り値の型:double
例:
> SELECT covar_samp(c1, c2) FROM (VALUES (1,1), (2,2), (3,3)) AS tab(c1, c2);
1.0

FIRST_VALUE

関数構文:
FIRST_VALUE(<expr> T[, <isIgnoreNull> boolean])
サポートエンジン:SparkSQL、Presto
使用説明:exprの行の最初の値を返します。isIgnoreNullがtrueの場合、null以外の値のみが返されます。
戻り値の型:T
例:
> SELECT first_value(col) FROM (VALUES (10), (5), (20)) AS tab(col);
10
> SELECT first_value(col) FROM (VALUES (NULL), (5), (20)) AS tab(col);
NULL
> SELECT first_value(col, true) FROM (VALUES (NULL), (5), (20)) AS tab(col);
5

FIRST

関数構文:
FIRST(<expr> T[, <isIgnoreNull> boolean])
サポートエンジン:SparkSQL
使用説明:exprの行の最初の値を返します。isIgnoreNullがtrueの場合、null以外の値のみが返されます。
戻り値の型:T
例:
> SELECT first(col) FROM (VALUES (10), (5), (20)) AS tab(col);
10
> SELECT first(col) FROM (VALUES (NULL), (5), (20)) AS tab(col);
NULL
> SELECT first(col, true) FROM (VALUES (NULL), (5), (20)) AS tab(col);
5

KURTOSIS

関数構文:
KURTOSIS(<expr> integer|double|decimal)
サポートエンジン:SparkSQL
使用説明:グループの値に基づいて計算された尖度値を返します。
戻り値の型:double
例:
> SELECT kurtosis(col) FROM (VALUES (-10), (-20), (100), (1000)) AS tab(col);
-0.7014368047529627
> SELECT kurtosis(col) FROM (VALUES (1), (10), (100), (10), (1)) as tab(col);
0.19432323191699075s

LAST_VALUE

関数構文:
LAST_VALUE(<expr> T[, <isIgnoreNull> boolean])
サポートエンジン:SparkSQL、Presto
使用説明:exprの行の最後の値を返します。isIgnoreNullがtrueの場合、null以外の値のみが返されます。
戻り値の型:T
例:
> SELECT last_value(col) FROM (VALUES (10), (5), (20)) AS tab(col);
20
> SELECT last_value(col) FROM (VALUES (10), (5), (NULL)) AS tab(col);
NULL
> SELECT last_value(col, true) FROM (VALUES (10), (5), (NULL)) AS tab(col);
5

LAST

関数構文:
LAST(<expr> T[, <isIgnoreNull> boolean])
サポートエンジン:SparkSQL
使用説明:exprの行の最後の値を返します。isIgnoreNullがtrueの場合、null以外の値のみが返されます。
戻り値の型:T
例:
> SELECT last(col) FROM (VALUES (10), (5), (20)) AS tab(col);
20
> SELECT last(col) FROM (VALUES (10), (5), (NULL)) AS tab(col);
NULL
> SELECT last(col, true) FROM (VALUES (10), (5), (NULL)) AS tab(col);
5

MEAN

関数構文:
MEAN(<expr> integer|double|decimal)
サポートエンジン:SparkSQL、Presto
使用説明:グループの値に基づいて計算された平均値を返します。
戻り値の型:double
例:
> SELECT mean(col) FROM (VALUES (1), (2), (3)) AS tab(col);
2.0
> SELECT mean(col) FROM (VALUES (1), (2), (NULL)) AS tab(col);
1.5

PERCENTILE

関数構文:
PERCENTILE(<col> ANY, <percentage> integer|double|decimal|array<double> [, <frequency> integer])
サポートエンジン:SparkSQL、Presto
使用説明:指定されたパーセンテージ下での数値列colの正確なパーセンタイル値を返します。percentage値は0.0から1.0の間でなければなりません。frequencyは正の整数である必要があります。
戻り値の型:double
例:
> SELECT percentile(col, 0.3) FROM (VALUES (0), (10)) AS tab(col);
3.0
> SELECT percentile(col, array(0.25, 0.75)) FROM (VALUES (0), (10)) AS tab(col);
[2.5,7.5]

SKEWNESS

関数構文:
SKEWNESS(<col> integer|double|decimal)
サポートエンジン:SparkSQL
使用説明:グループの値に基づいて計算された歪度を返します。
戻り値の型:double
例:
> SELECT skewness(col) FROM (VALUES (-10), (-20), (100), (1000)) AS tab(col);
1.1135657469022011
> SELECT skewness(col) FROM (VALUES (-1000), (-100), (10), (20)) AS tab(col);
-1.1135657469022011

PERCENTILE_APPROX

関数構文:
PERCENTILE_APPROX(<col> integer|double|decimal, <percentage> double|array<double>[, <accuracy> integer])
サポートエンジン:SparkSQL、Presto
使用説明:数値列colの近似パーセンタイルを返します。この値は、colの値を最小から最大に並べ替えた際に、指定したパーセンテージ以下の値となる最小値です。percentageの値は0.0から1.0の間でなければなりません。accuracyパラメータ(デフォルト値:10000)は正の数値リテラルで、メモリ使用量と引き換えに近似精度を制御します。精度値が高いほど近似精度が向上し、1.0/accuracyが近似相対誤差となります。percentageが配列の場合、配列内の各値は0.0から1.0の間でなければなりません。この場合、指定されたpercentage配列に対応する列colの近似パーセンタイル配列が返されます。
戻り値の型:integer |array<integer>
例:
> SELECT percentile_approx(col, array(0.5, 0.4, 0.1), 100) FROM (VALUES (0), (1), (2), (10)) AS tab(col);
[1,1,0]
> SELECT percentile_approx(col, 0.5, 100) FROM (VALUES (0), (6), (7), (9), (10)) AS tab(col);
7

APPROX_PERCENTILE

関数構文:
APPROX_PERCENTILE(<col> integer|double|decimal, <percentage> double|array<double>[, <accuracy> integer])
サポートエンジン:SparkSQL、Presto
使用説明:数値列colの近似パーセンタイルを返します。この値は、colの値を最小から最大に並べ替えた際に、指定したパーセンテージ以下の値となる最小値です。percentageの値は0.0から1.0の間でなければなりません。accuracyパラメータ(デフォルト値:10000)は正の数値リテラルで、メモリ使用量と引き換えに近似精度を制御します。精度値が高いほど近似精度が向上し、1.0/accuracyが近似相対誤差となります。percentageが配列の場合、配列内の各値は0.0から1.0の間でなければなりません。この場合、指定されたpercentage配列に対応する列colの近似パーセンタイル配列が返されます。
戻り値の型:integer |array<integer>
例:
> SELECT APPROX_PERCENTILE(col, array(0.5, 0.4, 0.1), 100) FROM (VALUES (0), (1), (2), (10)) AS tab(col);
[1,1,0]
> SELECT APPROX_PERCENTILE(col, 0.5, 100) FROM (VALUES (0), (6), (7), (9), (10)) AS tab(col);
7

MAX

関数構文:
MAX(<col> integer|double|decimal)
サポートエンジン:SparkSQL、Presto
使用説明:colの最大値を返します。
戻り値の型:colと一致します。
例:
> SELECT max(col) FROM (VALUES (10), (50), (20)) AS tab(col);
50

MAX_BY

関数構文:
MAX_BY(<x> T, <y> integer|double|decimal)
サポートエンジン:SparkSQL、Presto
使用説明:yの最大値に関連付けられたx値を返します。
戻り値の型:T
例:
> SELECT max_by(x, y) FROM (VALUES (('a', 10)), (('b', 50)), (('c', 20))) AS tab(x, y);
b

MIN

関数構文:
MIN(<col> integer|double|decimal)
サポートエンジン:SparkSQL、Presto
使用説明:colの最小値を返します。
戻り型:colと一致
例:
> SELECT min(col) FROM (VALUES (10), (50), (20)) AS tab(col);
10

MIN_BY

関数構文:
MIN_BY(<x> T, <y> integer|double|decimal)
サポートエンジン:SparkSQL、Presto
使用説明:yの最小値に関連付けられたx値を返します。
戻り値の型:T
例:
> SELECT min_by(x, y) FROM (VALUES (('a', 10)), (('b', 50)), (('c', 20))) AS tab(x, y);
a

STD

関数構文:
STD(<col> integer|double|decimal)
サポートエンジン:SparkSQL、Presto

使用説明

SparkSQL:グループの値に基づいて計算された標本標準偏差を返します。
Presto:グループの値に基づいて計算された母標準偏差を返します。
戻り値の型:double
例:
> SELECT std(col) FROM (VALUES (1), (2), (3)) AS tab(col);
1.0

STDDEV

関数構文:
STDDEV(<col> integer|double|decimal)
サポートエンジン:SparkSQL、Presto
使用説明:グループの値に基づいて計算された標本標準偏差を返します。
戻り値の型:double
例:
> SELECT stddev(col) FROM (VALUES (1), (2), (3)) AS tab(col);
1.0

STDDEV_POP

関数構文:
STDDEV_POP(<col> integer|double|decimal)
サポートエンジン:SparkSQL、Presto
使用説明:グループの値に基づいて計算された母集団標準偏差を返します。
戻り値の型:double
例:
> SELECT stddev_pop(col) FROM (VALUES (1), (2), (3)) AS tab(col);
0.816496580927726

STDDEV_SAMP

関数構文:
STDDEV_SAMP(<col> integer|double|decimal)
サポートエンジン:SparkSQL、Presto
使用説明:グループの値に基づいて計算された標本標準偏差を返します。
戻り値の型:double
例:
> SELECT stddev_samp(col) FROM (VALUES (1), (2), (3)) AS tab(col);
1.0

SUM

関数構文:
SUM(<col> integer|double|decimal)
サポートエンジン:SparkSQL、Presto
使用説明:グループの値に基づいて計算された合計値を返します。
戻り型:colと一致
例:
> SELECT sum(col) FROM (VALUES (5), (10), (15)) AS tab(col);
30
> SELECT sum(col) FROM (VALUES (NULL), (10), (15)) AS tab(col);
25
> SELECT sum(col) FROM (VALUES (NULL), (NULL)) AS tab(col);
NULL

VARIANCE

関数構文:
VARIANCE(<col> integer|double|decimal)
サポートエンジン:SparkSQL、Presto
使用説明:グループの値に基づいて計算された標本分散を返します。
戻り値の型:double
例:
> SELECT VARIANCE(col) FROM (VALUES (1), (2), (3)) AS tab(col);
1.0

VAR_POP

関数構文:
VAR_POP(<col> integer|double|decimal)
サポートエンジン:SparkSQL、Presto
使用説明:グループの値に基づいて計算された母分散を返します。
戻り値の型:double
例:
> SELECT var_pop(col) FROM (VALUES (1), (2), (3)) AS tab(col);
0.6666666666666666

VAR_SAMP

関数構文:
VAR_SAMP(<col> integer|double|decimal)
サポートエンジン:SparkSQL、Presto
使用説明:グループの値に基づいて計算された標本分散を返します。
戻り値の型:double
例:
> SELECT var_samp(col) FROM (VALUES (1), (2), (3)) AS tab(col);
1.0

HISTOGRAM_NUMERIC

関数構文:
HISTOGRAM_NUMERIC(<col> integer, <nb> integer)
サポートエンジン:Presto
使用説明:nb個の不均等間隔のビンを使用して、グループ内の数値列のヒストグラムを計算します。出力は、ビンの中心と高さを表すサイズnbの(x、y)座標配列です。
戻り型:array<struct {'x','y'}>
例:
> SELECT histogram_numeric(col, 5) FROM (VALUES (0), (1), (2), (10)) AS tab(col);
[{"x":0,"y":1.0},{"x":1,"y":1.0},{"x":2,"y":1.0},{"x":10,"y":1.0}]

COLLECT_LIST

関数構文:
COLLECT_LIST(<col> T)
サポートエンジン:SparkSQL、Presto
使用説明:非ユニーク要素のリストを収集して返します。
戻り値の型:array<T>
例:
> SELECT collect_list(col) FROM (VALUES (1), (2), (1)) AS tab(col);
[1,2,1]

COLLECT_SET

関数構文:
COLLECT_SET(<col> T)
サポートエンジン:SparkSQL、Presto
使用説明:ユニークな要素のセットを収集して返します。
戻り値の型:array<T>
例:
> SELECT collect_set(col) FROM (VALUES (1), (2), (1)) AS tab(col);
[1,2]

COUNT_MIN_SKETCH

関数構文:
COUNT_MIN_SKETCH(<col> T, <eps> double, <confidence> double, <seed> integer)
サポートエンジン:SparkSQL
使用説明:指定されたesp、confidence、seedを持つ列のcount min sketchを返します。結果はバイナリ形式で、使用前にCountMinSketchに逆シリアル化できます。
戻り値の型:binary
例:
> SELECT hex(count_min_sketch(col, 0.5d, 0.5d, 1)) FROM (VALUES (1), (2), (1)) AS tab(col);
0000000100000000000000030000000100000004000000005D8D6AB90000000000000000000000000000000200000000000000010000000000000000

EVERY

関数構文:
EVERY(<col> boolean)
サポートエンジン:SparkSQL、Presto
使用説明:colのすべての値がtrueの場合、trueを返します。
戻り値の型:boolean
例:
> SELECT every(col) FROM (VALUES (true), (true), (true)) AS tab(col);
true
> SELECT every(col) FROM (VALUES (NULL), (true), (true)) AS tab(col);
true
> SELECT every(col) FROM (VALUES (true), (false), (true)) AS tab(col);
false

BOOL_AND

関数構文:
BOOL_AND(<col> boolean)
サポートエンジン:SparkSQL、Presto
使用説明:colのすべての値がtrueの場合、trueを返します。
戻り値の型:boolean
例:
> SELECT bool_and(col) FROM (VALUES (true), (true), (true)) AS tab(col);
true
> SELECT bool_and(col) FROM (VALUES (NULL), (true), (true)) AS tab(col);
true
> SELECT bool_and(col) FROM (VALUES (true), (false), (true)) AS tab(col);
false

AND

関数構文:
<expr1> AND <expr2>
サポートエンジン:SparkSQL、Presto

使用説明

論理積
戻り値の型:boolean
例:
> SELECT true and true;
true
> SELECT true and false;
false
> SELECT true and NULL;
NULL
> SELECT false and NULL;
false

OR

関数構文:
<expr1> OR <expr2>
サポートエンジン:SparkSQL、Presto
使用説明:論理和
戻り値の型:boolean
例:
> SELECT true or false;
true
> SELECT false or false;
false
> SELECT true or NULL;
true
> SELECT false or NULL;
NULL

ANY

関数構文:
ANY(<col> boolean)
サポートエンジン:SparkSQL、Presto
使用説明:colの少なくとも1つの値がtrueの場合、trueを返します。
戻り値の型:boolean
例:
> SELECT any(col) FROM (VALUES (true), (false), (false)) AS tab(col);
true
> SELECT any(col) FROM (VALUES (NULL), (true), (false)) AS tab(col);
true
> SELECT any(col) FROM (VALUES (false), (false), (NULL)) AS tab(col);
false

SOME

関数構文:
SOME(<col> boolean)
サポートエンジン:SparkSQL、Presto
使用説明:colの少なくとも1つの値がtrueの場合、trueを返します。
戻り値の型:boolean
例:
> SELECT some(col) FROM (VALUES (true), (false), (false)) AS tab(col);
true
> SELECT some(col) FROM (VALUES (NULL), (true), (false)) AS tab(col);
true
> SELECT some(col) FROM (VALUES (false), (false), (NULL)) AS tab(col);
false

BOOL_OR

関数構文:
BOOL_OR(<col> boolean)
サポートエンジン:SparkSQL、Presto
使用説明:colの少なくとも1つの値がtrueの場合、trueを返します。
戻り値の型:boolean
例:
> SELECT BOOL_OR(col) FROM (VALUES (true), (false), (false)) AS tab(col);
true
> SELECT BOOL_OR(col) FROM (VALUES (NULL), (true), (false)) AS tab(col);
true
> SELECT BOOL_OR(col) FROM (VALUES (false), (false), (NULL)) AS tab(col);
false

BIT_AND

関数構文:
BIT_AND(<col> integer|bigint)
サポートエンジン:SparkSQL、Presto
使用説明:すべての非null入力値のビット単位ANDを返します。存在しない場合はnullを返します。
戻り型:colと一致
例:
> SELECT bit_and(col) FROM (VALUES (3), (5)) AS tab(col);
1

BIT_OR

関数構文:
BIT_OR(<col> integer|bigint)
サポートエンジン:SparkSQL、Presto
使用説明:すべての非null入力値のビット単位ORを返します。存在しない場合はnullを返します。
戻り型:colと一致
例:
> SELECT bit_or(col) FROM (VALUES (3), (5)) AS tab(col);
7

BIT_XOR

関数構文:
BIT_XOR(<col> integer|bigint)
サポートエンジン:SparkSQL、Presto
使用説明:すべての非null入力値のビット単位XORを返します。存在しない場合はnullを返します。
戻り型:colと一致
例:
> SELECT bit_xor(col) FROM (VALUES (3), (5)) AS tab(col);
6

ARG_MIN

関数構文:
ARG_MIN(<col1>, <col2> | expr(col2))
サポートエンジン:SparkSQL
使用説明:指定された列col1の最小値を持つ行を、指定された計算式に従って返します。
ソート可能な列名。定数の場合、任意の値が返されます。複数の最小値がある場合、ランダムに行が返されます。
戻り値の型:col2またはexpr(col2)の型と一致します。
例:
> SELECT arg_min(dt, uid) from values (1, 'm1'), (2, 't2'), (3, 'z3') as tab(dt, uid);
m1
> SELECT arg_min(dt, upper(uid)) from values (1, 'm1', 1), (2, 't2', 1), (3, 'z3', 2) as tab(dt, uid, gid) group by gid;
M1
Z3

ARG_MAX

関数構文:
ARG_MAX(<col1>, <col2> | expr(col2))
サポートエンジン:SparkSQL
使用説明:指定された列col1の最大値を持つ行を、指定された計算式に従って返します。
col1: ソート可能な列名。定数の場合、任意の値が返されます。最大値が複数ある場合、ランダムに行が返されます。
戻り値の型:col2またはexpr(col2)の型と一致します。
例:
> SELECT arg_max(dt, uid) from values (1, 'm1'), (2, 't2'), (3, 'z3') as tab(dt, uid);
z3
> SELECT arg_max(dt, upper(uid)) from values (1, 'm1', 1), (2, 't2', 1), (3, 'z3', 2) as tab(dt, uid, gid) group by gid;
T2
Z3

MAP_UNION_SUM

関数構文:
MAP_UNION_SUM(map<k, v> input)
サポートエンジン:SparkSQL
使用説明:指定した列で、mapをkey値に基づいてすべてのvalueを合計します。
注意1:nullのデータを集計することが許可されており、すべてがnullの場合、出力はnullになります。
注意2:keyのvalueがnullであることを許可し、その場合、数字0に変換されます。
戻り値の型:入力の型と一致します。
例:
> SELECT map_union_sum(ids) from values (map(1, 1)), (map(1,2)), (map(2,1)) as tab(ids);
{1:3,2:1}
> SELECT idx, map_union_sum(ids) from values (map(1, 1), 1), (map(1,2), 1), (map(2,1), 1) as tab(ids, idx) group by idx;
1 {1:3,2:1}


ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック