zoukankan      html  css  js  c++  java
  • ListAgg

    LISTAGG

    Syntax

    listagg
    Description of the illustration listagg.gif

    See Also:

    "Analytic Functions" for information on syntax, semantics, and restrictions of the ORDER BY clause and OVER clause

    Purpose

    For a specified measure, LISTAGG orders data within each group specified in the ORDER BY clause and then concatenates the values of the <measure> column.

    • As a single-set aggregate function, LISTAGG operates on all rows and returns a single output row.

    • As a group-set aggregate, the function operates on and returns an output row for each group defined by the GROUP BY clause.

    • As an analytic function, LISTAGG partitions the query result set into groups based on one or more expression in the query_partition_clause.

    The arguments to the function are subject to the following rules:

    • The measure_expr can be any expression. Null values in the measure column are ignored.

    • The delimiter_expr designates the string that is to separate the measure values. This clause is optional and defaults to NULL.

    • The order_by_clause determines the order in which the concatenated values are returned. The function is deterministic only if the ORDER BY column list achieved unique ordering.

    The return data type is RAW if the measure column is RAW; otherwise the return value is VARCHAR2.

    Examples

    The following single-set aggregate example lists all of the employees in Department 30 in the hr.employees table, ordered by hire date and last name:

    SELECT LISTAGG(last_name, '; ') WITHIN GROUP (ORDER BY hire_date, last_name) "Emp_list",
        MIN(hire_date) "Earliest"
        FROM employees
        WHERE department_id = 30;
    
    Emp_list                                                     Earliest
    ------------------------------------------------------------ ---------
    Raphaely; Khoo; Tobias; Baida; Himuro; Colmenares            07-DEC-02

    The following group-set aggregate example lists, for each department ID in the hr.employees table, the employees in that department in order of their hire date:

    SELECT department_id "Dept.",
      LISTAGG(last_name, '; ')
       WITHIN GROUP (ORDER BY hire_date) "Employees"
       FROM employees
       GROUP BY department_id;
    
    Dept. Employees
    ------ ------------------------------------------------------------
        10 Whalen
        20 Hartstein; Fay
        30 Raphaely; Khoo; Tobias; Baida; Himuro; Colmenares
        40 Mavris
        50 Kaufling; Ladwig; Rajs; Sarchand; Bell; Mallin; Weiss; Davie
           s; Marlow; Bull; Everett; Fripp; Chung; Nayer; Dilly; Bissot
           ; Vollman; Stiles; Atkinson; Taylor; Seo; Fleaur; Matos; Pat
           el; Walsh; Feeney; Dellinger; McCain; Vargas; Gates; Rogers;
            Mikkilineni; Landry; Cabrio; Jones; Olson; OConnell; Sulliv
           an; Mourgos; Gee; Perkins; Grant; Geoni; Philtanker; Markle
        60 Austin; Pataballa; Lorentz; Ernst; Hunold
        70 Baer
    ... 

    The following analytic example shows, for each employee hired earlier than September 1, 2003, the employee's department, hire date, and all other employees in that department also hired before September 1, 2003:

    SELECT department_id "Dept", hire_date "Date", last_name "Name",
      LISTAGG(last_name, '; ') WITHIN GROUP (ORDER BY hire_date, last_name)
      OVER (PARTITION BY department_id) as "Emp_list"
      FROM employees
      WHERE hire_date < '01-SEP-2003';
    
     Dept Date      Name            Emp_list
    ----- --------- --------------- ---------------------------------------------
       30 07-DEC-02 Raphaely        Raphaely; Khoo
       30 18-MAY-03 Khoo            Raphaely; Khoo
       40 07-JUN-02 Mavris          Mavris
       50 01-MAY-03 Kaufling        Kaufling; Ladwig
       50 14-JUL-03 Ladwig          Kaufling; Ladwig
       70 07-JUN-02 Baer            Baer
       90 13-JAN-01 De Haan         De Haan; King
       90 17-JUN-03 King            De Haan; King
      100 16-AUG-02 Faviet          Faviet; Greenberg
      100 17-AUG-02 Greenberg       Faviet; Greenberg
      110 07-JUN-02 Gietz           Gietz; Higgins
      110 07-JUN-02 Higgins         Gietz; Higgins
    魔兽就是毒瘤,大家千万不要玩。
  • 相关阅读:
    清除内联元素间默认的间隔
    Idea配置SpringBoot热部署
    导出下载模板
    Java 使用Graphics2D 进行画图
    【Modbus】Java使用 modbus-master-tcp 读取和写入Modbus服务器数据
    解决txt文件上传oss服务器乱码的问题
    docker java.lang.NoClassDefFoundError: org/bouncycastle/** 解决
    解决SpringBoot 报错 Error parsing HTTP request header
    React+AntDesign使用Tree树控件完整展现其中的层级关系,并具有展开收起选择等交互功能
    AntDesign使用Form表单出现You cannot set a form field before rendering a field associated with the value
  • 原文地址:https://www.cnblogs.com/tracy/p/1822358.html
Copyright © 2011-2022 走看看