首页 > 数据库 >Oracle中group by

Oracle中group by

时间:2023-06-21 11:12:36浏览次数:41  
标签:group 分组 子句 Oracle where having select

Oracle中group by

在select语句中可以使用group by子句将行划分成较小的组,一旦使用分组后select操作的对象变为各个分组后的数据,使用聚组函数返回的是每一个组的汇总信息。

使用having子句限制返回的结果集。group by子句可以将查询结果分组,并返回行的汇总信息Oracle 按照group by 子句中指定的表达式的值分组查询结果。

在带有group by子句的查询语句中,在select列表中指定的列要么是group by子句中指定的列,要么包含聚组函数

select max(sal), job emp group by job; 

(注意max(sal),job的job并非一定要出现,但有意义) 查询语句的select 和group by ,having 子句是聚组函数唯一出现的地方,在where 子句中不能使用聚组函数。

select deptno, sum(sal) from emp where sal>1200 group by deptno having sum(sal) > 8500 order by deptno;

当在gropu by 子句中使用having 子句时,查询结果中只返回满足having条件的组。在一个sql语句中可以有where子句和having子句。

having 与where 子句类似,均用于设置限定条件where子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚合函数,使用where条件显示特定的行。

having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚合函数,使用having 条件显示特定的组,也可以使用多个分组标准进行分组。

使用order by排序时order by子句置于group by 之后 并且 order by 子句的排序标准不能出现在select查询之外的列。

查询每个部门的每种职位的雇员数

select deptno, job, count(*) from emp group by deptno, job;

总之:在使用group by 时,有一个规则需要遵守,即出现在select列表中的字段,如果没有在组函数中,那么必须出现在group by 子句中。(select中的字段不可以单独出现,必须出现在group语句中或者在组函数中。)

标签:group,分组,子句,Oracle,where,having,select
From: https://www.cnblogs.com/JaxYoun/p/17495765.html

相关文章

  • oracle和MySQL区别在大数据上体现
    原文,https://blog.csdn.net/weixin_39569543/article/details/111090287结论:阿里java开发手册禁止三张表join大数据量下使用join导致数据冗余更大,MySQL处理不了过大的数据量,Oracle可以正常处理......
  • 世界级Oracle专家权威力作
     世界级Oracle专家权威力作《Oracle10g数据库管理艺术》姊妹篇全面阐述Oracle11g新特性   “这是市面上最详细的11g参考书,内容非常丰富,我极力推荐此书。”——Amazon.com Oracle因为卓越的性能、可扩展性、可用性、安全性和易管理性,在数据库市场一直保持领先......
  • Oracle系列---【REGEXP_LIKE函数的使用】
    REGEXP_LIKE函数的使用REGEXP_LIKE函数的使用场景oracle中有两张表,一张叫A_PACKAGE,另一张叫A_RULE,两张表通过PACKAGE_ID关联。其中,A_PACKAGE表中有一个字段channelId,存储的是'B,C,PUB'格式的(多个channelId用逗号隔开),现在已知channelId='B',如何根据'B'查找符合条件的A_RULE......
  • 解决PostgreSQL分组聚合时SELECT中字段必须在group或聚合函数中的问题(转自知乎仅供自
    PG的分组函数是比较严格的。你的select字段必须得存在于group子句、或者聚合函数中才行。假设场景是这样的:表结构name、class、score我现在要按照name分组,聚合score数据,还能查出额外的这个class字段如果是MySQL,你可以直接groupname然后selectclass,avg(score),但是你在P......
  • 通过cgroup给docker的CPU和内存资源做限制
    1.cpudockerrun-it--cpu-period=100000--cpu-quota=2000ubuntu/bin/bash相当于只能使用20%的CPU在每个100ms的时间里只能使用20ms的计算时间2.内存$dockerrun-m1Gubuntu:16.04,该容器能使用的内存大小为1G,能使用的swap分区大小也为1G。容器内的进程能申请到的总内存......
  • Oracle列转行函数LISTAGG() WITHIN GROUP ()用法
    1:SELECTID,SIDFROMTestWHERE ID='001' 2:SELECTID,LISTAGG(SID,',')WITHINGROUP(ORDERBYSID)ASSID_LISTFROMTestWHERE ID='001'groupbyID  ......
  • POSTGRESQL RC事务处理与ORACLE MYSQL 的区别 --对PGFANS 群里面的问题的分解
    有一个同学在PGFANS群里面提了一个问题,在他实验的某个操作中发现PG和ORACLE使用同样的操作流程后,得到的结果不一致。所以下面准备验证并找到一些可以解释的原因。测试库名test测试表test测试数据id  age 1   202   223   24首先我们要确认 PG的隔离 RC......
  • windows10安装Oracle数据库
    Oracle数据库安装流程配置压缩包资源:链接:https://pan.baidu.com/s/19ElajYQIosiBcM84ZRiIVg提取码:07061.首先提前再除C盘的任意一个盘符里新建一个Oracle文件夹,并将这俩个安装包压缩到其文件夹下,解压完的文件夹如下database。  2、进入database文件夹可执行安装文件......
  • oracle 手动删除归档日志
    1、https://blog.csdn.net/bosschen/article/details/129415215删除归档文件首先删除归档文件在物理主机磁盘中的文件物理文件删除后ORACLE的controlfile中仍然记录着这些archivelog的信息,在oracle的OEM管理器中有可视化的日志展现出,接下来要做的就是从controlfile中清除掉多余......
  • Oracle服务端和客户端版本补丁不一致造成Tuxedo应用程序出core案例
    这是一个CU**系统调用的查询天气预报的Tuxedo服务,OraclePro*C程序,连接的是Oracle10.2.0.4库,出现问题的现象是不定时的产生core,服务down,触发Tuxedo服务的自动重启机制,但一般MAXGEN配置是100,即1天内若重启100次后服务就不会自动重启了,只能人工干预,每次重启后会好一阵,且该服务已经由......