Megosztás a következőn keresztül:


string_agg összesítő függvény

A következőre vonatkozik:jelölve igen Databricks SQL jelölve igen Databricks Runtime 16.4 és újabb

Összefűzött STRING és BINARY csoporton belüli értékeket ad vissza.

Ez a függvény a listagg függvény aliasa.

Szemantika

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 ]

Ez a függvény ablakfüggvényként is meghívható a OVER záradék használatával, ha a WITHIN GROUP és FILTER záradék hiányzik.

Érvek

  • expr

    Egy kifejezés, amely kiértékelve értéket ad a STRING vagy a BINARY-re. NULL az értékek figyelmen kívül lesznek hagyva.

  • delimiter

    Az összefűzött értékek elválasztásához használt típusnak megfelelő expr. Az alapértelmezett érték egy üres sztring ('') a STRING számára, és egy nulla hosszúságú bináris (''::BINARY) a BINARY számára.

  • ORDER BY

    Egy kifejezés, amely az összefűzés előtt rendezi az értékeket. Az alapértelmezett érték a csoport sorainak sorrendje.

    • sortKey

      Egy kifejezés, amelyen a sorrend definiálva van. Az sortKey oszlophivatkozásoknak is jelen kell lenniük a expr-ben.

    • sort_direction

      A rendezési sorrendet adja meg kifejezés szerint.

      • ASC: A kifejezés rendezési iránya növekvő.
      • DESC: A kifejezés rendezési sorrendje csökkenő.

      Ha a rendezési irány nincs explicit módon megadva, akkor alapértelmezés szerint a sorok növekvő sorrendbe vannak rendezve.

    • nullok_rendezési_sorrendje

      Opcionálisan megadja, hogy a NULL értékek nem NULL értékek előtt vagy után lesznek-e visszaadva. Ha null_sort_order nincs megadva, akkor a NULL értékek kerülnek előre, ha a rendezési sorrend ASC, és a NULL értékek kerülnek a végére, ha a rendezési sorrend DESC.

      • NULLS FIRST: NULL a rendszer a rendezési sorrendtől függetlenül először visszaadja az értékeket.
      • NULLS LAST: NULL az értékek a rendezési sorrendtől függetlenül utolsóként jelennek meg.
  • cond: Nem kötelező BOOLEAN kifejezés, amely az összesítéshez használt sorokat szűri.

Visszatérítések

Ha STRING az expr, akkor STRING, egyébként BINARY.

Ha DISTINCT meg van adva, csak az egyedi értékek vannak összesítve, és azoknak sortKey egyeznie exprkell.

Példák

-- 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