oracle联合分组查询,Oracle分组查询
首先要明白的一点:数据重复的时候分组才有意义。
分组查询语法:
SELECT [DISTINCT] *|分组字段1 [别名] [,分组字段2 [别名] ,…] | 统计函数
FROM 表名称 [别名], [表名称 [别名] ,…]
[WHERE 条件(s)]
[GROUP BY 分组字段1 [,分组字段2 ,…]]
[ORDER BY 排序字段 ASC | DESC [,排序字段 ASC | DESC]];
特别说明的几点(非常重要):
1,GROUP BY 分组字段不能用字段别名;
2,没有分组时
统计函数可以单独用于SELECT之后,但是不能再出现其他字段;
3,单字段分组时
SELECT之后就只能用统计函数和GROUP BY之后的字段;
4,多字段分组时
涉及到的两个问题:
①跨表间的关联字段;-->消除笛卡儿积
②需要解决单字段分组时的局限性(如上第3点),解决方法:一般情况是在FROM后嵌套子查询-->构建临时表。举例如下:
列出各个部门的MANAGER(经理)的最低薪金、姓名、部门名称、部门人数。
1、确定所需要的数据表:
emp表:找到经理的薪金、姓名;
dept表:部门名称;
emp表:统计部门人数;
2、确定已知的关联字段:emp.deptno=dept.deptno;
第一步:找到所有部门的经理
SELECT deptno,MIN(sal)
FROM emp
WHERE job='MANAGER'
GROUP BY deptno;
第二步:找到姓名,但是以上的子查询,不能再出现其他的字段
SELECT e.ename,e.sal
FROM emp e,(
SELECT deptno dno,MIN(sal) sal
FROM emp
WHERE job=’MANAGER’
GROUP BY deptno) temp
WHERE e.deptno=temp.dno AND e.sal=temp.sal AND e.job='MANAGER';
第三步:加入部门的名称信息
SELECT e.ename,e.sal,d.dname
FROM emp e,(
SELECT deptno dno,MIN(sal) sal
FROM emp
WHERE job='MANAGER'
GROUP BY deptno) temp,dept d
WHERE e.deptno=temp.dno AND e.sal=temp.sal AND e.job='MANAGER'
AND e.deptno=d.deptno;
第四步:统计部门人数
SELECT e.ename,e.sal,d.dname,res.count
FROM emp e,(
SELECT deptno dno,MIN(sal) sal
FROM emp
WHERE job=’MANAGER’
GROUP BY deptno) temp,dept d,(
SELECT deptno dno,COUNT(empno) count
FROM emp
GROUP BY deptno) res
WHERE e.deptno=temp.dno AND e.sal=temp.sal AND e.job='MANAGER'
AND e.deptno=d.deptno AND res.dno=d.deptno;
oracle联合分组查询,Oracle分组查询相关推荐
- Oracle笔记(六) 多表查询、统计函数及分组查询、子查询
本次预计讲解的知识点 1. 多表查询的操作.限制.笛卡尔积的问题: 2. 统计函数及分组统计的操作: 3. 子查询的操作,并且结合限定查询.数据排序.多表查询.统计查询一起完成各个复杂查询的操作: 一 ...
- oracle两表联查分组,oracle解决多表关联分组查询问题
做了一个功能需要分组查询,同时查询A表分组查询的ID需要关联B表的数据,本来想两个表关联查询,但是报group by 语法不正确.所以做了以下修改. select count(*), cindexid ...
- oracle分组聚合查询,Oracle中分组查询group by用法规则解析
本篇文章小编给大家分享一下Oracle中分组查询group by用法规则解析,文章介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. Oracle中group by ...
- oracle每小时分组查询,Oracle 天内按小时分组查询有关问题
Oracle 天内按小时分组查询问题 本帖最后由 hao123yao 于 2013-03-08 11:30:56 编辑 表名c_data_01.表结构: uuid c_id c_time ...
- oracle关联分组查询,oracle中关联查询、分组查询
高级查询 1.关联查询 作用:可以跨越多表查询 --查询出员工的名字和他所在部门的的名字 //古老的写法 select first_name,name from s_emp,s_dept where ...
- oracle数据库怎么分组查询,oracle数据库之分组查询
本章内容和大家分享的是数据当中的分组查询.分组查询复杂一点的是建立在多张表的查询的基础之上,(我们在上一节课的学习中已经给大家分享了多表查询的使用技巧,大家可以自行访问:多表查询1 多表查询2)而在 ...
- 318分组聚合,关联查询(多表连接查询)(连接查询),连接查询oracle写法,集合运算ld
----------分组聚合:对表里面的数据进行各个维度/角度的统计 -------------统计:需要用 聚合函数 max(目标字段):求最大值 min(目标字段) :求最小值 avg(目标字段) ...
- oracle 分组 排名,Oracle数据库之分组查询及排序
分组查询:使用 group by 来设置分组,把该列具有相同值的多条记录当成一组记录来处理,然后只会输出一条记录,得到的结果会默认使用升序的方式进行排列. 规则: (1)如果使用了分组函数,或者是 g ...
- Oracle之数据操作__分组统计查询
一. 统计函数 1. COUNT(*),COUNT(字段),COUNT(DISTNCT 字段) SELECT COUNT(*),COUNT(ename),COUNT(comm),COU ...
- MySQL基础——数据库和SQL概述\MySQL基本使用\DQL语言学习\条件查询\排序查询\常见函数\分组查询\连接查询\子查询\分页查询\联合查询
本文详细讲解了MySQL中DQL语言,也就是数据查询语句的使用.全文3w余字,是对学习MySQL知识的整理总结,因为篇幅较长,MySQL基础知识余下部分发表在余下博客中 DML语言学习\插入数据\删除 ...
最新文章
- IEEE Spectrum调查:AI 的 6 种最坏情况
- 桌面云实验环境的部署配置
- android+note2+分辨率,魅蓝Note2的屏幕尺寸是多少?魅蓝Note2的分辨率是多少?
- linux搭建directx环境,微軟開始在WSL 2環境中的Linux支援DirectX
- 【opencv】——钢管计数(霍夫圆变换 + 阈值 + canny)
- 视频人脸检测——Dlib版(六)
- 简要概述html5的设计宗旨,HTML5程序设计(第2版) 第一章:HTML5概述.doc
- linux vnc的小黑点和鼠标不同步_vnc安装步骤,vnc在Linux中的7个安装步骤
- 关于TCP/UDP缓存
- IE缓存文件提取器 V2.1 绿色版
- 自在服务器虚拟化,新破晓诛仙3单机版16职业商业仿官青罗天界灵境神隐虚拟机一键端GM网单...
- COPRA RF 2005 SR1最新版 (冷弯成型,轧辊设计)
- OpenCV画椭圆、实心圆、凹多边形、线段、矩形
- 濡沫江湖一直显示获取服务器地址,濡沫江湖霜儿剧情任务怎么完成?霜儿专属剧情任务接取以及完成攻略...
- 解决macOS无法在线升级更新的问题
- 给你一碗孟婆汤,你会选择遗忘什么?
- b站网页html,bilibili注册页面html简单分析
- 英文WM 5.0、6.0 ROM汉化初级教程
- Android端外推送到底有多烦?(转载自一个1000万用户App的CTO的对推送的看法)
- 考研数据结构判断题整合