-
--在分组查询中使用order by 子句查看全部
-
having 过滤分组 --求出平均工资大于2000的部门 select deptno ,avl(sal) from emp group by deptno --where 与having的区别 --1.不能在where子句中使用组函数。 --2.可以在hving子句zhong使用组函数。 --3.where和having共用 select deptno,avg(sal) from emp having deptno =10; --从sql优化的角度上看,尽量使用where --having 先分组后过滤 where 先过滤在分组 --where 使得分组记录数大大降低,从而提高效率 having avg(sal)>2000;查看全部
-
--group by 子句 select deptno ,avg(sal) from emp group by deptno; --抽象 select a ,组函数(x) from table group by a ; --在select 列表中所有未包含在组函数中的列都应该包含在group by子句中。 select deptno ,job,sum(sal) from emp group by deptno, jbo order by depton;查看全部
-
--分组函数与空值 select sum(sal)/count(*),avg(sal) from emp; --注意:分组函数会自动忽略空值 --nvl函数使分组函数无法忽略空值 select count(*),count(nvl(comm,0)) from emp;查看全部
-
select deptno 部门号,wm_concat(ename) 部门中员工的姓名 from emp group by deptno;查看全部
-
--平均 总和 select avg(sal),sum(sal) from emp; --最小和最大 select min(sal),max(sal) from emp; --总个数 select count(1) from emp; --求出部门数 select count(distinct deptno) from emp;查看全部
-
分组函数:avg 平均 sum 求和 min 最小 max 最大 count 个数 wm_concat 行转列查看全部
-
相同的部门号只显示一次,不同的部门号隔2行 break on deptno skip 2查看全部
-
group by 语句的增强 group by rollup(a.b)可以理解等价于: group by a,b + group by a + group by null查看全部
-
select count(*),count(comm) from emp; count(*)=14,count(comm)=4不同, 原因是分组函数会自动忽略空值。 修改,加入nvl()函数(滤空函数), select count(*),count(nvl(comm,0)) from emp; 结果count(*)=14,count(comm)=14相同查看全部
-
行转列 vm_concat; 将员工表中的数据,一个部门一条数据,把同一部门的员工的姓名用“,”隔开。 select detpno 部门号, vm_concat(ename) 部门号中员工的姓名 from emp group by deptno;查看全部
-
行号只能小于或小于等于,不能用大于或者大于等于。查看全部
-
若子查询不返回任何行,则主查询也会为空查看全部
-
select deptno,job,sum(sal) from emp group by rollup(deptno,job)查看全部
-
外连接:把连接条件不成立的记录仍然包括在结果中查看全部
举报
0/150
提交
取消