ORACLE 连接某个字段及分组后取某个字段最大(最小)等实现方法
2014-04-16 15:01
633 查看
1.连接某个字段
对于表A 我们有B和C两个字段
有时候,我们想B相同的,C字段相连接的值,可以用WM_CONCAT和LISTAGG两种方法。其中LISTAGG为11g中的新特性。
两种用法如下:
分组后取得某个字段最大或最小的记录:
ORACLE实现九九乘法表:
对于表A 我们有B和C两个字段
有时候,我们想B相同的,C字段相连接的值,可以用WM_CONCAT和LISTAGG两种方法。其中LISTAGG为11g中的新特性。
两种用法如下:
SELECT WM_CONCAT(V.USER_NAME) AS USER_NAME, ITEM_ID FROM USER_ITEM_VIEW V GROUP BY ITEM_ID HAVING COUNT(1) > 1查询结果:
SELECT LISTAGG(V.USER_NAME, ',') WITHIN GROUP(ORDER BY V.USER_NAME) AS USER_NAME, V.ITEM_ID FROM USER_ITEM_VIEW V GROUP BY V.ITEM_ID HAVING COUNT(1) > 1;LISTAGG可以自定义分隔符,且速度更快。
分组后取得某个字段最大或最小的记录:
SELECT LASTM_DUMMY, ZONE_ID, CREATED_ON FROM (SELECT A.*, ROW_NUMBER() OVER(PARTITION BY A.ZONE_ID ORDER BY CREATED_ON DESC) RN FROM A) B WHERE B.RN = 1
ORACLE实现九九乘法表:
SELECT REVERSE(sys_connect_by_path(REVERSE(rpad(rownum * lv, 2)) || '=' || rownum || '*' || lv, ' ')) FROM (SELECT LEVEL lv FROM dual CONNECT BY LEVEL < 10) t WHERE lv = 1 CONNECT BY lv + 1 = PRIOR lv;
相关文章推荐
- Oracle 取出多个字段列中的最大值和最小值
- 插入数据到oracle,实现id字段自增的方法
- Oracle 取出多个字段列中的最大值和最小值
- sql语句实现按某字段分组并按另一字段排名(oracle)
- oracle通过表中2个字段分组查询取数量最大的所有记录,有条件的去重
- SQL 按字段分组后取每组内最大或最小的值
- 【oracle】Oracle中字符串连接的实现方法【转】
- 关于MYSQL group by 分组按时间取最大值的实现方法!
- 无客户端连接oracle服务器的实现方法
- 分组查询最大最小记录的方法
- ORACLE-SQL积累(查询外检约束、记录长度、字段长度、启用禁用触发器、case用法、分组连接函数、查询被锁表)
- Oracle中字符串连接的实现方法
- 【Oracle】oracle取最大值和最小值的几个方法汇总
- Oracle中字符串连接的实现方法
- oracle按某个字段分组然后从每组取出最大的一条纪录
- 关于MYSQL group by 分组按时间取最大值的实现方法!
- oracle 一个字段做为分组条件,另一个字段的最大值为查询条件
- MSSQL 多字段根据范围求最大值实现方法
- 分组查询取最大时间记录的方法Oracle
- oracle取出多个字段列中的最大值和最小值