我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Oracle高级分组

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Oracle高级分组

--oracleGROUP BY中使用的列必须与select语句中没有使用聚合函数的列相匹配

  SELECTd.dname,COUNT(e.empno)

    FROMdeptd,empe

   WHEREe.deptno(+)=D.DEPTNO

GROUPBYD.DNAME;

 

  SELECTd.dname,COUNT(E.EMPNO)

    FROMdeptd LEFTOUTERJOINempeONE.DEPTNO=D.DEPTNO

GROUPBYd.dname;

 

--GROUP BY 所产生的结果可以通过HAVING子句中所给出的筛选标准来进行限制

 

--需求:从有雇员以来的第一个完整年开始所有至少雇佣了5名员工的部门

SELECT D.DNAME,TRUNC(e.hiredate,'yyyy'),COUNT(e.empno)

FROMdeptd,empe

WHERE D.DEPTNO=E.DEPTNO

GROUPBYD.DNAME,TRUNC(e.hiredate,'yyyy')

  HAVING     COUNT(e.empno)>5

         ANDTRUNC(e.hiredate,'yyyy')BETWEEN(SELECTMIN(hiredate)

                                                  FROMemp)

                                            AND(SELECTMAX(hiredate)

                                                  FROMemp);

                                                  

--CUBE将会使得对每一行都要考虑包含CUBE参数中所有可能的元素组合

                                                  

CREATETABLEtestCube

(

   num1   NUMBER,

   num2   NUMBER

);

 

INSERTINTOtestCube

     VALUES(1,2);

 

COMMIT;

 

  SELECT*

    FROMtestCube

GROUPBYCUBE(num1,num2);

Oracle高级分组

--GROUPING可以排除cube生成的空值

  SELECTDECODE(GROUPING(num1),1,'NUM1',num1),

         DECODE(GROUPING(num2),1,'NUM2',num2)

    FROMtestCube

GROUPBYCUBE(num1,num2);

Oracle高级分组

 

 

--GROUPING_ID确定其参数中的哪一行被用来生成超聚合行,然后创建一个位矢量以数值返回

WITH testGroupid AS(SELECT1 bit_1,0 bit_0 FROM DUAL),

     cubed

     AS(  SELECTGROUPING_ID(bit_1,bit_0) gid,

                 TO_CHAR(GROUPING(bit_1))bv_1,

                 TO_CHAR(GROUPING(bit_0))bv_0,

                 DECODE(GROUPING(bit_1),1,'GRP BIT1') gb_1,

                 DECODE(GROUPING(bit_0),1,'GRP BIT0') gb_0

             FROMtestGroupid

         GROUPBYCUBE(bit_1,bit_0))

  SELECTgid,

         bv_1||bv_0 bit_vector,

         gb_1,

         gb_0

    FROMcubed

ORDERBYgid;

 Oracle高级分组

 

GROUP BY 局限性

1、LOB列,嵌套表和数组不能使用GROUPBY

2、标量子查询表达式不允许

3、GROUP BY引用对象类型列不能并行化


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Oracle高级分组

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

7个perl数组高级操作技巧分享

1. 使用map函数对数组中的每个元素进行操作:```perlmy @array = (1, 2, 3, 4, 5);my @new_array = map { $_ * 2 } @array;# 输出:(2, 4, 6, 8, 10)``
2023-08-09

Oracle DECODE函数的高级用法及技巧分享

Oracle数据库中的DECODE函数是一个非常常用的函数,它可以根据一个表达式的结果值在一组值中进行选择。DECODE函数的语法如下:DECODE(expression, search_value1, result1, search_va
Oracle DECODE函数的高级用法及技巧分享
2024-03-08

怎么协助MySQL实现Oracle高级分析函数

小编给大家分享一下怎么协助MySQL实现Oracle高级分析函数,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Oracle 支持一些独特的语法和函数,在移植到 M
2023-06-01

软考高级多少分及格?2023软考高级分数线为45分

  软考高级多少分及格?软考高级分数线是45分吗?2023软考高级分数线实行相对固定合格标准,各科目分数线为试卷满分的60%,软考高级各科目满分75分,即2023软考高级45分算通过。  针对软考高级多少分及格?软考高级分数线是45分吗?的问题,编程学习网小编将2023软考高级分数线的相关资讯整理如下:  一、软考高级分数
软考高级多少分及格?2023软考高级分数线为45分
2024-04-19

jQuery高级组件怎么应用

jQuery高级组件是指在jQuery基础上进行扩展和封装的一些功能强大、可复用的组件。应用这些高级组件需要按照以下步骤进行:1. 引入jQuery库和相应的高级组件库。在HTML文件中使用````2. 创建HTML结构。按照高级组件的要求
2023-09-17

软考高级多少分过?软考高级合格标准分数线

软考高级多少分过?软考高级合格标准分数线是多少?软考分数线全国统一,自2022年起实行相对固定合格标准,各级别、各专业、各科目分数线均为满分的60%。软考高级各科目总分均为75分,所以软考高级合格标准分数线均为45分/科。

软考高级会降分吗?软考高级考试多少分及格?

软考高级会降分吗?软考高级考试多少分及格?软考高级考试结束,考生最关心的就是成绩相关的问题,其中关于软考高级合格分数线会不会降低?多少分合格是热点。软考高级分数线实行相对固定合格标准,不会降分,各科目分数线均为45分。

编程热搜

目录