ORACLE命令 group by having

Oracle Group By 用法之 —— Having 客户需求分析:  笔者最近接到一家客户的一个需求。他们部署了一个ERP系统,现在采用的就是Oracle数据库。现在由于企业统计分析的需要,要实现如下的需求。  1、按月份来统计2009年第一季度每个供应商的采购金额。也就是说,在报表中要能够显示出2009年1月份、2月份、3月份供应商的采购金额合计,不需要明细。  2、显示的结果按年度、月份、供应商名字进行排序。       阅读详情

先通览我们要查询的表:

SQL> SELECT * FROM EMP ;
 
     EMPNO ENAME      JOB         MGR HIREDATE          SAL DEPTNO
---------- ---------- --------- ----- ----------- --------- ------
      7369 SMITH      CLERK      7902 1980/12/17     800.00     20
      7499 ALLEN      SALESMAN   7698 1981/2/20     1600.00     30
      7521 WARD       SALESMAN   7698 1981/2/22     1250.00     30
      7566 JONES      MANAGER    7839 1981/4/2      2975.00     20
      7654 MARTIN     SALESMAN   7698 1981/9/28     1250.00     30
      7698 BLAKE      MANAGER    7839 1981/5/1      2850.00     30
      7782 CLARK      MANAGER    7839 1981/6/9      2450.00     10
      7788 SCOTT      ANALYST    7566 1987/4/19     3000.00     20
      7839 KING       PRESIDENT       1981/11/17    5000.00     10
      7844 TURNER     SALESMAN   7698 1981/9/8      1500.00     30
      7876 ADAMS      CLERK      7788 1987/5/23     1100.00     20
      7900 JAMES      CLERK      7698 1981/12/3      950.00     30
      7902 FORD       ANALYST    7566 1981/12/3     3000.00     20
      7934 MILLER     CLERK      7782 1982/1/23     1300.00     10
 
14 rows selected

我们对JOB和DEPTNO进行统计汇总,并过滤掉SAL<2500的信息。

SQL> SELECT JOB, DEPTNO, AVG(SAL)AS AVG_SAL FROM EMP GROUP BY JOB,DEPTNO  HAVING AVG(SAL) >=2500  ORDER BY JOB ASC;
 
JOB       DEPTNO    AVG_SAL
--------- ------ ----------
ANALYST       20       3000
MANAGER       20       2975
MANAGER       30       2850
PRESIDENT     10       5000

可以看出,HAVING 对于GROUP BY ,类似于WHERE 对于SELECT  。 

HAVING用于过滤掉GROUP BY 中不满足条件的信息,仅仅显示满足条件的信息。比如上例中只显示SAL>=2500的信息。

GROUP 的执行会消耗大量CPU资源,HAVING配合GROUP也算是一种优化吧。


Oracle - Having、Group by(组函数、分组与排序) 思维导图: ★ COUNT(Column_Name) 会对记录中的该列的种类进行划分后计数! Example: 求选课人数超过2人并且课程号中包含字符2的课程号以及具体的选课人数; [ 当查询的结果需要对组函数进行筛选的时候需要使用HAVING语句在GROUP BY后进行再次筛选!] SELECT CNO,COUNT(*) FROM SCORE GROUP BY CNO ... 阅读详情

相关推荐

Android 车载应用开发与优化(1) - CarLauncher 核心功能与动态集成探秘

本文深入探讨了Android车载应用开发中CarLauncher的核心功能与实现原理。作为车载系统的“脸面”,CarLauncher不仅提供应用入口,更通过动态集成技术将地图、音乐等关键信息嵌入桌面,以保障驾驶安全与体验。文章详细解析了其源码结构、权限配置、应用启动机制以及基于Activity嵌入的动态集成黑魔法,为开发者提供了从基础认识到高级优化的完整指南。

weixin_29239279的博客 282

别再只盯着CXL协议了,聊聊CXL.mem里那个能动态调优内存性能的‘QoS遥测’到底怎么用

本文深入解析CXL.mem协议中的QoS遥测功能,探讨如何通过DevLoad指标动态调优内存性能。文章详细介绍了QoS遥测的核心机制、多QoS类别设备的实战配置,以及AI训练、金融交易和视频处理场景中的优化案例,帮助数据中心实现高效内存资源管理。

weixin_33725722的博客 436

重复数据查询、删除 group by having使用

--查询重复记录,单个字段或多个字段约束 select 重复字段名 from 表名 group by 重复字段名 having count(重复字段名) > 1 例: select t.mark_id from LOSS_F_MARK_STATUS t where t.sbtype = '1' group by t.mark_id having count(...

weixin_38919176的博客 1219

别再被骚扰了!手把手教你彻底卸载阿里云盾(安骑士)并封禁其IP段

本文详细指导如何彻底卸载阿里云盾(安骑士)并封禁其IP段,帮助用户夺回服务器控制权。从识别监控组件到执行官方卸载脚本,再到手动清理残留文件和配置iptables规则,确保完全阻断云盾通信。适用于追求极致性能或需要完全自主控制的环境。

weixin_42525551的博客 452

广告推荐算法 - 学习笔记(持续更新中)

本篇博客,是我用来记录学习广告推荐算法的一些笔记和总结。王喆:"深度"学习计算广告计算广告系统的核心目标是通过数据、算法和技术,在合适的场景下,将最相关的广告精准推送给目标用户,同时实现广告主媒体平台和用户之间的多方利益最大化。广告主:需求方核心目标:通过精准投放广告,最大化转化(如点击、购买)并控制成本,提升投资回报率(ROI)。关键行为:广告创建,定向设置,预算与出价策略,效果监控媒体平台:供给方核心目标:最大化广告收入,同时保持用户体验以避免用户流失。

qq_39748832的博客 2197

oracle group by 命令,ORACLE命令 group by having

先通览我们要查询的表:SQL> SELECT * FROM EMP ;EMPNO ENAME JOB MGR HIREDATE SAL DEPTNO---------- ---------- --------- ----- ----------- --------- ------7369 SMITH CLERK 7902 198...

weixin_32183107的博客 180

【OCPP】ocpp1.6J协议框架说明

本文档的目的是为读者提供创建正确的可互操作 OCPP JSON 实现 (OCPP-J) 所需的信息。我们将根据我们自己的经验,尝试解释什么是强制性的、什么是良好做法以及什么是不应该做的。毫无疑问,误解或歧义仍然存在,但我们旨在通过本文件尽可能地防止它们。IANA:互联网数字分配机构(OCPP-J:使用JSON通过WebSocket进行OCPP通信。特定的OCPP版本应使用J扩展进行指示。OCPP1.5J表示我们正在讨论1.5版本的JSON/WebSocket实现。

qq_53871375的博客 1241

oracle中的帮助命令,Oracle命令 group by having

先通览我们要查询的表:1.SQL> SELECT * FROM EMP ;2.3. EMPNO ENAME JOB MGR HIREDATE SAL DEPTNO4.---------- ---------- --------- ----- ----------- --------- ------5. 7369 SMITH...

weixin_39617006的博客 189

1553B总线介绍及其硬件方案设计

军用1553B总线 1.简介 简单介绍可参考(https://blog.youkuaiyun.com/ScilogyHunter/article/details/108444231)博主写的很详细。 1553B总线是MIL-STD-1553总线的简称,其中B就是BUS,MIL-STD-1553B总线是飞机内部时分制命令/响应式多路复用数据总线。1553B数据总线标准是20世纪70年代由美国公布的一种串行多路数据总线标准。1553B总线能挂31个远置终端,1553B总线采用指令/响应型通信协议,它有三种终端类型: BC:

小幽余生不加糖 1万+

UDPProbe UDP端口存活探测(发送特征包+响应分析)、UDP服务识别

qDebug() << "收到响应:" << ip.toString() << ":" << port << " 服务:" << serviceName << " 响应长度:" << response.size();qDebug() << "开始探测:" << targetIp << ":" << port << " 超时时间:" << timeout << "ms";qInfo() << "\n==================== UDP探测结果 ====================";

寒寒豆豆软件公司的博客 147

(三)数据库的查询与视图

以Oracle为例 一、数据库的查询

CarmenIsOK的博客 1380

Linux 配置 multipath 多路径

每天一个 DBA 小知识,助你更进一步!

LuciferLiu_DBA 3298

oracle删除第三行,Oracle学习第三篇—多行函数

0 order by asc/desc 默认升序order by 列的名字|表达式|别名|序号把空放在后边:order by desc nulls last1分组函数--会自动滤空值count(*|distinct|clumn) max min sum avgselect sum(comm)/count(*) 一,sum(comm)/count(comm) 二,avg(comm) 三from em...

weixin_42360237的博客 198

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

oracle sql语句大全

ORACLE支持五种类型的完整性约束 NOT NULL (非空)--防止NULL值进入指定的列,在单列基础上定义,默认情况下,ORACLE允许在任何列中有NULL值. CHECK (检查)--检查在约束中指定的条件是否得到了满足. UNIQUE (唯一)--保证在指定的列中没有重复值.在该表中每一个值或者每一组值都将是唯一的. PRIMARY KEY (主键)--用来唯一的标识出表的每一行...

Gblfy_Blog 612

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

oracle 10 命令,ORACLE 10 学习笔记命令 第一课。(付首昕)

ORACLE 10 学习笔记命令第一课。1.sqlplus /nologconnect /as sysdbaalter user scott account unlock;alter user scott identified by manager;2.grant select on dept to nmerp;revoke select on dept to nmerp;select * fr...

weixin_42395823的博客 142

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

【Oracle】曾经的Oracle学习笔记(1-3) 数据库常见用语,常见命令,创建测试表...

一、数据库的登录 二、数据库常用语 三、测试表的创建,测试数据初始化 四、常见命令介绍 五、测试 user:jeffreysn:jeffrey user:systemsn:jeffrey 浏览器中输入:http://127.0.0.1:8080/apex管理员登陆user:syssn:jeffrey 打开服务列表:win+r打开运行框,输入services.mscO...

weixin_30421809的博客 862

oracle知识小结和javaweb面试常见的问题

oracle知识点小结:1.orcale数据类型:char(用于描述定长的字符型数据,长度小于等于2000字节)                               varchar2(用于描述变长的字符型数据,长度小于等于4000字节)                               number(用来存储整数或者浮点数)                            ...

Caozefei_2018的博客 457

oracle查询表的意思,Oracle表的查询(一)

表查询关键字、字段、表名不加引号时不区分大小写引号定义的内容区分大小写运算中有null值时,结果为null*nvl(字段,赋值):如果字段值为null,则取后面一个值*like 关键字:%表示若干个字符,_代表一个字符in 关键字:in(条件集合)order by:排序别名 : 中文加“”分组: group bymax():对字段取最大值min(): 对字段取最小值having :对分组的结果进行...

weixin_32073865的博客 351

oracle笔试题用户表部门表,几个Oracle的笔试题

Oracle笔试试题1. SQL必备1. 如果在where子句中有两个条件要同时满足,应该用以下哪个逻辑符来连接( )A.ORB.NOTC.ANDD.NONE2. 外连接的条件可以放在以下的那一个子句中( )A.FROMB.WEHREC.SELECTD.HAVINGE.GROUP BYF.ORDER BY3. 在从两个表中查询数据时,连接条件要放在哪个子句中( )A.FROMB.WHEREC.SE...

weixin_36312301的博客 193

【Oracle11g SQL详解】GROUP BY 和 HAVING 子句:分组与过滤

子句是 SQL 中用于分组统计和结果过滤的关键工具。掌握其语法和高级用法,将为数据库查询与分析奠定坚实的基础。用于对分组后的结果进行过滤。这两者常结合聚合函数使用,用以实现复杂的数据统计和分析。根据单个列的值对数据分组,并对每组数据应用聚合函数。是一种扩展分组的功能,用于生成分组的汇总数据。用于根据一个或多个列对查询结果进行分组,而。用于对分组后的结果进行进一步过滤。使用多个条件组合对分组结果进行过滤。返回按薪资级别分组后的员工数量。生成跨多个分组维度的汇总数据。分组可以基于多个列的组合值。

weixin_39372311的博客 6054

Oracle DB 对行进行分组-group by、having

创建数据组 所有组函数都将表当作一个大型的信息组。但是,有时需要将此信息表分成几个较小的组。可以通过使用GROUP BY子句完成此任务。 创建数据组:GROUP BY子句的语法 可以通过使用GROUP BY子句将表中的行分成较小的组。 SELECT  column, group_function(column) FROM  table [WHERE  c

一抹曦阳-Oracle 1万+

Oracle 对行进行分组-group by、having

创建数据组 所有组函数都将表当作一个大型的信息组。但是,有时需要将此信息表分成几个较小的组。可以通过使用GROUP BY子句完成此任务。 创建数据组:GROUP BY子句的语法 可以通过使用GROUP BY子句将表中的行分成较小的组。 SELECT  column, group_function(column) FROM  table [WHERE  condi

Aamir 的专栏 2087

oracle学习总结2

1:常用的函数 to_date()函数,将字符串转换为日期格式select to_date('2015-09-12','yyyy-MM-dd') from dual; --其中后面的日期格式要和前面要转化的匹配 to_number()函数,将字符串转换为数字格式select ename,sal from emp where sal&gt;to_number('$5000.00','$9999....

weixin_34110749的博客 87

oracle 中GROUP BY的用法

问题: select item.itemnum,item.in1,item.in4,inventory.location from item,inventory where item.itemnum=inventory.itemnum and inventory.loc

Base 12万+
上一篇: ORACLE命令 CUBE
下一篇: Oracle命令 外部结合
错_对
博客等级 码龄16年 68粉丝 80原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值