首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

ORACLE分析函数(六)-使用listagg实现行列转换

2013-10-18 
ORACLE分析函数(6)--使用listagg实现行列转换listagg函数是在oracle11g中新引入的聚合函数,当然也可以作为

ORACLE分析函数(6)--使用listagg实现行列转换

        listagg函数是在oracle11g中新引入的聚合函数,当然也可以作为分析函数来使用。该函数可以基于分组内特定列的排序,将测量列进行拼接合并。

        示例:

        在10g中,该函数不被支持

SQL> l  1  select time_id,prod_id,min(amount_sold),listagg(min(amount_sold),';') within group (order by prod_id) over (partition by time_id) cust_list  2  from sales where time_id > to_date('20-DEC-01','DD-MON-YY','NLS_DATE_LANGUAGE = American') and prod_id between 120 and 125  3* group by prod_id,time_idSQL> /TIME_ID        PROD_ID MIN(AMOUNT_SOLD) CUST_LIST------------------- ---------- ---------------- ----------------------------------2001-12-21 00:00:00   120  51.36 51.36;10.812001-12-21 00:00:00   121  10.81 51.36;10.812001-12-22 00:00:00   120  51.36 51.36;10.81;20.23;56.12;17.79;15.672001-12-22 00:00:00   121  10.81 51.36;10.81;20.23;56.12;17.79;15.672001-12-22 00:00:00   122  20.23 51.36;10.81;20.23;56.12;17.79;15.672001-12-22 00:00:00   123  56.12 51.36;10.81;20.23;56.12;17.79;15.672001-12-22 00:00:00   124  17.79 51.36;10.81;20.23;56.12;17.79;15.672001-12-22 00:00:00   125  15.67 51.36;10.81;20.23;56.12;17.79;15.672001-12-23 00:00:00   120  51.36 51.36;10.49;20.23;57.86;17.79;15.672001-12-23 00:00:00   121  10.49 51.36;10.49;20.23;57.86;17.79;15.672001-12-23 00:00:00   122  20.23 51.36;10.49;20.23;57.86;17.79;15.67TIME_ID        PROD_ID MIN(AMOUNT_SOLD) CUST_LIST------------------- ---------- ---------------- ----------------------------------2001-12-23 00:00:00   123  57.86 51.36;10.49;20.23;57.86;17.79;15.672001-12-23 00:00:00   124  17.79 51.36;10.49;20.23;57.86;17.79;15.672001-12-23 00:00:00   125  15.67 51.36;10.49;20.23;57.86;17.79;15.672001-12-24 00:00:00   120  51.36 51.36;10.49;20.23;56.12;17.79;15.672001-12-24 00:00:00   121  10.49 51.36;10.49;20.23;56.12;17.79;15.672001-12-24 00:00:00   122  20.23 51.36;10.49;20.23;56.12;17.79;15.672001-12-24 00:00:00   123  56.12 51.36;10.49;20.23;56.12;17.79;15.672001-12-24 00:00:00   124  17.79 51.36;10.49;20.23;56.12;17.79;15.672001-12-24 00:00:00   125  15.67 51.36;10.49;20.23;56.12;17.79;15.672001-12-25 00:00:00   120  51.36 51.36;10.812001-12-25 00:00:00   121  10.81 51.36;10.81TIME_ID        PROD_ID MIN(AMOUNT_SOLD) CUST_LIST------------------- ---------- ---------------- ----------------------------------2001-12-26 00:00:00   123  57.86 57.862001-12-27 00:00:00   120  51.36 51.36;10.49;20.23;56.12;17.79;15.672001-12-27 00:00:00   121  10.49 51.36;10.49;20.23;56.12;17.79;15.672001-12-27 00:00:00   122  20.23 51.36;10.49;20.23;56.12;17.79;15.672001-12-27 00:00:00   123  56.12 51.36;10.49;20.23;56.12;17.79;15.672001-12-27 00:00:00   124  17.79 51.36;10.49;20.23;56.12;17.79;15.672001-12-27 00:00:00   125  15.67 51.36;10.49;20.23;56.12;17.79;15.672001-12-28 00:00:00   120  51.36 51.36;10.49;56.12;17.79;15.672001-12-28 00:00:00   121  10.49 51.36;10.49;56.12;17.79;15.672001-12-28 00:00:00   123  56.12 51.36;10.49;56.12;17.79;15.672001-12-28 00:00:00   124  17.79 51.36;10.49;56.12;17.79;15.67TIME_ID        PROD_ID MIN(AMOUNT_SOLD) CUST_LIST------------------- ---------- ---------------- ----------------------------------2001-12-28 00:00:00   125  15.67 51.36;10.49;56.12;17.79;15.672001-12-29 00:00:00   122  20.23 20.23;56.12;17.79;15.672001-12-29 00:00:00   123  56.12 20.23;56.12;17.79;15.672001-12-29 00:00:00   124  17.79 20.23;56.12;17.79;15.672001-12-29 00:00:00   125  15.67 20.23;56.12;17.79;15.672001-12-30 00:00:00   120  51.36 51.36;10.492001-12-30 00:00:00   121  10.49 51.36;10.492001-12-31 00:00:00   121  10.81 10.81已选择41行。


热点排行