Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunun için geçerlidir: evet olarak işaretlendi Databricks SQL evet olarak işaretlendi Databricks Runtime 16.4 ve üzeri
Bir grup içindeki birleştirilmiş STRING
ve BINARY
değerleri döndürür.
Bu işlev listagg işlevinin diğer adıdır.
Sözdizimi
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 ]
Bu işlev, tümcesi ve OVER
tümcesi atlanırsa, WITHIN GROUP
yan tümcesi kullanılarak FILTER
olarak da çağrılabilir.
Tartışmalar
expr
STRING
veyaBINARY
olarak değerlendirilen bir ifade.NULL
değerleri yoksayılır.delimiter
expr
türüyle eşleşen, birleştirilmiş değerleri ayırmak için kullanılan sabit ifade. Varsayılan değer''
için boş bir dizedir (STRING
) ve''::BINARY
için sıfır uzunluklu ikilidir (BINARY
).ORDER BY
Birleştirmeden önce değerleri sıralamak için kullanılan ifade. Varsayılan, gruptaki satırların sırasıdır.
sortKey
Sıranın tanımlandığı ifade. içinde
sortKey
bulunan sütun başvuruları daexpr
içinde bulunmalıdır.sort_direction
İfadeye göre sıralama düzenini belirtir.
-
ASC
: Bu ifadenin sıralama yönü artandır. -
DESC
: Bu ifadenin sıralama düzeni azalan düzendedir.
Sıralama yönü açıkça belirtilmezse, varsayılan olarak satırlar artan düzende sıralanır.
-
boş_değerler_sıralama_düzeni
İsteğe bağlı olarak NULL değerlerin NULL olmayan değerlerden önce/sonra döndürülip döndürülmeyeceğini belirtir. Belirtilmezse
null_sort_order
, sıralama düzeni ise NULL'ler önce sıralanır ve sıralama düzeniASC
ise NULLS en son sıralanırDESC
.-
NULLS FIRST
:NULL
değerler sıralama düzeninden bağımsız olarak önce döndürülür. -
NULLS LAST
:NULL
değerler sıralama düzeninden bağımsız olarak en son döndürülür.
-
cond
: Toplama için kullanılan satırları filtreleyerek isteğe bağlıBOOLEAN
bir ifade.
İade
Eğer STRING
, expr
ise, STRING
; aksi halde, BINARY
.
Eğer DISTINCT
belirtilirse, yalnızca benzersiz değerler toplanır ve sortKey
expr
ile eşleşmelidir.
Örnekler
-- 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