ARRAY_SORTBY
ファンクション
keys 配列の順序に従って values 配列をソートします。
- 例えば、
keysが[3, 0, 2]でvaluesが[5, 7, 8]の場合、ソート後にkeysは[0, 2, 3]となり、対応するvaluesは[7, 8, 5]となります。
Syntax
ARRAY_SORTBY(values, keys)ARRAY_SORTBY(lambda, values)ARRAY_SORTBY(lambda, values)はARRAY_SORTBY(values, ARRAY_MAP(lambda, values))と同等です
パラメータ
values:ARRAY<T>、ソートされる値の配列。Tは数値、boolean、文字列、datetime、IPなどをサポートします。keys:ARRAY<T>、valuesと同じ長さのキー配列。Tは数値、boolean、文字列、datetime、IPなどをサポートします。lambda:valuesに適用して、ソートに使用するkeys配列を生成するlambda式。
Return value
valuesと同じ型のARRAY<T>を返します。- いずれかの行で
valuesとkeysの要素数が異なる場合、エラーがスローされます。
Usage notes
- 安定性:
valuesはkeysの昇順でソートされます。等しいキー間の相対的な順序は未定義です。 - 高階呼び出しでは、最初に
ARRAY_MAPでkeysが計算され、次にkeysによってvaluesがソートされます。
Examples
-
基本:
keysの昇順でvaluesをソートします。ARRAY_SORTBY([10,20,30], [3,1,2])->[20,30,10]ARRAY_SORTBY(['a','b','c'], [2,2,1])->['c','a','b]
-
高階:
lambdaを通じてkeysを計算してからソートします。ARRAY_SORTBY(x -> x + 1, [3,1,2])->[1,2,3](keysは[4,2,3])ARRAY_SORTBY(x -> x*2 <= 2, [1,2,3])->[1,2,3](keysは[true,false,false])
-
keysまたはvaluesがNULLの場合、valuesを変更せずに返します。array_sortby([10,20,30], NULL)->[10, 20, 30]array_sortby(NULL, [2,3])->NULL