Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:
Databricks SQL
Databricks Runtime 16.4 dan yang lebih baru
Mengembalikan nilai yang digabungkan STRING dan BINARY dalam grup.
Fungsi ini adalah alias untuk fungsi listagg.
Sintaksis
string_agg ( [ALL | DISTINCT] expr [, delimiter] )
[ WITHIN GROUP (ORDER BY { sortKey [ sort_direction ] [ nulls_sort_oder ] } [, ...] ) ]
[ FILTER ( WHERE cond ) ]
sort_direction
[ ASC | DESC ]
nulls_sort_order
[ NULLS FIRST | NULLS LAST ]
Fungsi ini juga dapat dipanggil sebagai fungsi jendela menggunakan OVER klausa jika WITHIN GROUP klausa dan FILTER klausa dihilangkan.
Argumen
exprEkspresi yang menghasilkan
STRINGatauBINARY.NULLnilai diabaikan.delimiterEkspresi konstanta yang cocok dengan jenis dari
expryang digunakan untuk memisahkan nilai-nilai yang digabungkan. Defaultnya adalah string kosong ('') untukSTRINGdan biner panjang nol (''::BINARY) untukBINARY.ORDER BYEkspresi yang digunakan untuk menyusun nilai sebelum penggabungan. Defaultnya adalah urutan baris dalam grup.
sortKeyEkspresi di mana urutan ditentukan. Referensi kolom di dalam
sortKeyjuga harus ada diexpr.sort_direction
Menentukan urutan sortir untuk urutan yang didasarkan pada ekspresi.
-
ASC: Arah pengurutan untuk ekspresi ini adalah menaik. -
DESC: Urutan penyortiran untuk ekspresi ini adalah menurun.
Jika arah pengurutan tidak ditentukan secara eksplisit, maka baris akan diurutkan naik secara default.
-
nulls_sort_order
Secara opsional menentukan apakah nilai NULL dikembalikan sebelum/setelah nilai non-NULL. Jika
null_sort_ordertidak ditentukan, NULL akan diurutkan terlebih dahulu jika urutan sortirnya adalahASCdan NULLS akan diurutkan terakhir jika urutan sortirnya adalahDESC.-
NULLS FIRST:NULLnilai dikembalikan terlebih dahulu terlepas dari urutan pengurutan. -
NULLS LAST:NULLnilai dikembalikan terakhir terlepas dari urutan pengurutan.
-
cond: Ekspresi opsionalBOOLEANyang memfilter baris yang digunakan untuk agregasi.
Pengembalian Barang
STRING jika expr adalah STRING, jika tidak BINARY.
Jika DISTINCT ditentukan, hanya nilai unik yang dikumpulkan dan sortKey harus sesuai dengan expr.
Contoh
-- Simple example with default delimiter
> SELECT string_agg(col) FROM VALUES ('a'), ('b'), ('c') AS tab(col);
acb
-- Simple example with explicit delimiter
> SELECT string_agg(col, ', ') FROM VALUES ('a'), ('b'), ('c') AS tab(col);
b, a, c
-- Example with nulls
> SELECT string_agg(col) FROM VALUES ('a'), (NULL), ('c') AS tab(col);
ac
-- Example with explicit order
> SELECT string_agg(col) WITHIN GROUP (ORDER BY col DESC)
FROM VALUES ('a'), ('b'), ('c') AS tab(col);
cba
-- Example with DISTINCT
> SELECT string_agg(DISTINCT col)
FROM VALUES ('a'), ('a'), ('b') AS tab(col);
ab
-- Example of FUNCTION_AND_ORDER_EXPRESSION_MISMATCH
> SELECT string_agg(DISTINCT col) WITHIN GROUP (ORDER BY id DESC)
FROM VALUES (1, 'a'), (2, 'b'), (3, 'c') AS tab(id, col);
Error: [INVALID_WITHIN_GROUP_EXPRESSION.MISMATCH_WITH_DISTINCT_INPUT
-- Example with `BINARY`
> SELECT hex(string_agg(col::binary, x'00'))
FROM VALUES (1, 'a'), (2, 'b'), (3, 'c') AS tab(id, col);
6100630062