orcal - 分组
执行顺序
from
where
group by
having
select
order by
多表查询与分组查询的时候,查询结果相当于是一张临时表,所有的分组是在临时表操作
分组统计查询
COUNT()
MAX()
MIN()
SUM()
AVG()
MAX,MIN(数字,日期)
SELECT MAX(SAl),MIN(sal) FROM emp;
SELECT MAX(HIREDATE),MIN(HIREDATE) FROM emp;
SELECT SUM(SAl),AVG(sal) FROM emp;
SELECT TRUNC(AVG(MONTHS_BETWEEN(SYSDATE,hiredate)/12)) FROM emp; COUNT
统计条数
SELECT COUNT(*) FROM emp;
统计不为null的数量
SELECT COUNT(comm) FROM emp;
去重后的数量
SELECT COUNT(DISTINCT job) FROM emp; 分组统计查询
GROUP BY SELECT job,count(empno),AVG(sal)
FROM emp
GROUP BY job; SELECT job,count(empno),AVG(sal)
FROM emp
GROUP BY deptno; 限制1,有统计函数,没有group by 时,不允许有单独字段
例如:select Count(*) ,ename from emp;
限制2:在group by 语句中,select 语句后只允许出现统计函数和group by后的字段
限制3:统计函数嵌套查询,在嵌套查询时,只允许出现统计函数
错误
SELECT deptno,Max(AVG(sal))
FROM emp
GROUP by deptno
正确
SELECT Max(AVG(sal))
FROM emp
GROUP by deptno 理解分组:先求满足数据的数据,在分组
第一步 查询
SELECT d.deptno,d.dname,d.loc,e.empno,e.hiredate
from emp e,dept d
where e.deptno(+) = d.deptno;
第一步 分组
SELECT d.deptno,d.dname,d.loc,count(e.empno),AVG(MONTHS_BETWEEN(SYSDATE,e.hiredate)/12)
from emp e,dept d
where e.deptno(+) = d.deptno
group by d.deptno,d.dname,d.loc SELECT job,avg(sal)
FROM emp e
group by job
having avg(sal)>2000
where 不允许使用统计函数,发生在group by 之前
having 可以使用统计函数,group by 之后
orcal - 分组的更多相关文章
- 一条Sql语句分组排序并且限制显示的数据条数
如果我想得到这样一个结果集:分组排序,并且每组限定记录集的数量,用一条SQL语句能办到吗? 比如说,我想找出学生期末考试中,每科的前3名,并按成绩排序,只用一条SQL语句,该怎么写? 表[TScore ...
- xamarin android ListView手动分组
xamarin的listview控件其实自带有分组方法,关于xamarin listview的自带分组方法请自行参考官方文档,我这里只写自己写的分组方法.xamarin自带的分组好是好,功能多,但是加 ...
- [Java Collection]List分组之简单应用.
前言 今天有一个新需求, 是对一个List进行分组, 于是便百度到一些可用的代码以及我们项目使用的一些tools, 在这里总结下方便以后查阅. 一: 需求 现在我们一个数据库表t_series_val ...
- TSQL 分组集(Grouping Sets)
分组集(Grouping Sets)是多个分组的并集,用于在一个查询中,按照不同的分组列对集合进行聚合运算,等价于对单个分组使用“union all”,计算多个结果集的并集.使用分组集的聚合查询,返回 ...
- SQL Server 动态行转列(参数化表名、分组列、行转列字段、字段值)
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 实现代码(SQL Codes) 方法一:使用拼接SQL,静态列字段: 方法二:使用拼接SQL, ...
- SolrNet高级用法(分页、Facet查询、任意分组)
前言 如果你在系统中用到了Solr的话,那么肯定会碰到从Solr中反推数据的需求,基于数据库数据生产索引后,那么Solr索引的数据相对准确,在电商需求中经常会碰到菜单.导航分类(比如电脑.PC的话会有 ...
- MongoDB分组汇总操作,及Spring data mongo的实现
转载请在页首注明作者与出处 一:分组汇总 1.1:SQL样例 分组汇总的应用场景非常多,比如查询每个班级的总分是多少,如果用关系形数据库,那么sql是这样子的 ),class from score g ...
- 利用XML FOR PATH 合并分组信息
-- ================================================ -- Description:合并分组内容 -- Author:夏保华 -- Date:2009 ...
- sql 分组取最新的数据sqlserver巧用row_number和partition by分组取top数据
SQL Server 2005后之后,引入了row_number()函数,row_number()函数的分组排序功能使这种操作变得非常简单 分组取TOP数据是T-SQL中的常用查询, 如学生信息管理系 ...
随机推荐
- Web前端学习第一天
1.SQL注入攻击的发生 select username, email ,descl from users where id=1; 可能会被伪造成 1 union select password,1, ...
- 第二次作业-分布式版本控制系统Git的安装与使用
本次作业要求来自:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2103 我的github远程仓库的地址:https://github ...
- 编程总结5&学习总结
基础题目 请在第一周作业的基础上,继续完成:找出给定的文件中数组的最大值及其对应的最小下标(下标从0开始).并将最大值和对应的最小下标数值写入文件. 输入:请建立以自己英文名字命名的txt文件,并输入 ...
- 黑an网络---an网入门
我认为学网络的会上an网也是一项必备的技能,我不是鼓励你去犯罪而是保护自己的个人隐私免遭被侵害.an网和shen网实际上都是从英文翻译来的,an网即Dark Net或Dark Web,shen网则译为 ...
- Linux系统安装IonCube的方法详解教程
ioncube是业内优秀的php加密解密解决方案.和zend guard相比,ioncube具有如下优势: 1. 安全:zend guard的版本不是非常安全,网络上有破解使用zend,下面我们来看I ...
- ifconfig中lo、eth0、br0、wlan0接口
在 实体机上 ifconfig 命令用于 显示或配置网络设备(网络接口卡) 或修改. 1. 显示内容分析: lo 回环接口lo Link encap:Local Loopback inet addr ...
- kvm中重命名虚拟机
kvm中重命名虚拟机 1.查看虚拟机 [root@linux ~]# virsh list --all Id Name State ---------------------------------- ...
- Guava - Ordering
guava中Ordering类是对Compartor接口的实现,但它也只是一个抽象类. 当调用Ordering.natural()方法时,它就会返回一个NaturalOrdering的对象,Natur ...
- Struts2多文件上传原理和示例
一.创建上传文件的页面,代码如下所示 1.Struts2也可以很方便地实现多文件上传. 在输入表单域增加多个文件域:multifileupload.jsp <%@ page lan ...
- ES - Index Templates 全局index模板
1.Index Templates 之前我们聊过Dynamic template,它作用范围是特定的Index,如果我们想针对全局Index进行设置该如何操作呢? Index Templates 可以 ...