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
exprSTRINGveyaBINARYolarak değerlendirilen bir ifade.NULLdeğerleri yoksayılır.delimiterSabit ifade, birleştirilmiş değerleri ayırmak için kullanılan türle eşleşir. Varsayılan değer
''için boş bir dizedir (STRING) ve''::BINARYiçin sıfır uzunluklu ikilidir (BINARY).ORDER BYBirleştirmeden önce değerleri sıralamak için kullanılan ifade. Varsayılan, gruptaki satırların sırasıdır.
sortKeySıranın tanımlandığı ifade. içinde
sortKeybulunan sütun başvuruları daexpriç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üzeniASCise NULLS en son sıralanırDESC.-
NULLS FIRST:NULLdeğerler sıralama düzeninden bağımsız olarak önce döndürülür. -
NULLS LAST:NULLdeğ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ıBOOLEANbir ifade.
İade
Eğer STRING, expr ise, STRING; aksi halde, BINARY.
Eğer DISTINCT belirtilirse, yalnızca benzersiz değerler toplanır ve sortKeyexpr 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