のLISTAGG Oracleの機能

使用法:

次のようにその役割、文書の公式な解釈は以下のとおりです。

ORDER BY句で指定した後、メジャー列の値を連結し、各グループ内の指定されたメジャーの、LISTAGG注文データ。

すなわち、各グループ内で、LISTAGGカラム外植片は、結果は一緒にスプライスソート、order by句に従って順序付けられます。

measure_expr:それはどんな式に基づく列にすることができます。

区切り文字:区切り文字、デフォルトNUL

order_by_clauseに:order by句は、列の値の順序がスプライシングされる決定します。

この使用することで、LISTAGG通常の関数の関数として、また、分析関数として使用できるだけでなく見ることができます。

使用order_by_clauseにとquery_partition_clause次のように:

以下の例は、機能を説明します:

コンマでスプライシングされた通常の関数、賃金の一種。

EMPからSQL>を選択しLISTAGG(ENAME、 '')グループ内(SALによる順)名。

NAME
------------------------------------------------- -------------------------------------------------- -
SMITH、JAMES、ADAMS、MARTIN、WARD、MILLER、ターナー、ALLEN、CLARK、BLAKE、JONES、FORD、SCOTT、KING

グループ機能:

DEPTNOによるEMPグループからグループ内のSQL>を選択しDEPTNO、LISTAGG(ENAME、 '')(SALによる順)名。

    DEPTNOのNAME
---------- -------------------------------------- -------------------------------------------------- ------------
    10 MILLER、CLARK、KING
    20 SMITH、ADAMS、JONES、FORD、SCOTT
    30 JAMES、MARTIN、WARD、TURNER、ALLEN、BLAKE

分析機能:

SQL> EMPから(DEPTNOによってパーティション)名の上に選択DEPTNO、ENAME、SAL、LISTAGG(ENAME、 '')群内(SALによって順)。

    DEPTNO ENAME SAL NAME
---------- ---------- ---------- ---------------- ------------------------
        10 MILLER 1300 MILLER、CLARK、KING
        10 CLARK 2450 MILLER、CLARK、KING
        10 KING 5000 MILLER、CLARK、KING
        20 SMITH 800 SMITH、ADAMS、JONES、SCOTT、FORD
        20 ADAMS 1100 SMITH、ADAMS、JONES、SCOTT、FORD
        20 JONES 2975 SMITH、ADAMS、JONES、SCOTT、FORD
        20 SCOTT 3000 SMITH、ADAMS、JONES、SCOTT、FORD
        20 FORD 3000 SMITH 、ADAMS、JONES、SCOTT、FORD
        30 JAMES 950 JAMES、MARTIN、WARD、TURNER、ALLEN、BLAKE
        30 MARTIN 1250 JAMES、MARTIN、WARD、TURNER、ALLEN、BLAKE
        30 WARD 1250 JAMES、MARTIN、WARD、TURNER、ALLEN、BLAKE
        30 TURNER 1500 JAMES、MARTIN、WARD、TURNER、ALLEN、BLAKE
        30 ALLEN 1600 JAMES、MARTIN、WARD、TURNER、ALLEN、BLAKE
        30 BLAKE 2850 JAMES、MARTIN、WARD 、ターナー、ALLEN、BLAKE

14行が選択されました。

おすすめ

転載: www.linuxidc.com/Linux/2019-07/159543.htm