Oracle中With As 、Group By 语法
比如有下面三张表,用With as 、Group By语法解决几个问题;
with as : 可以用来创建临时表,作为过度的表;
group by: 按照某个字段来分类;
对应字段如下:
Sales empNo salDate City Client sal emp empNo ename visit empNo visitDate Client visitTimes

问题一:查出每个员工每个月的总销售额
分析:这里每个员工(即表中所有员工都要列出,哪怕没有销售额) , 每个月的总销售额(按月份进行累计) 、总销售额(SUM()函数)
select emp.ename ,sales.saldate, sum(sales.sal) from emp left join sales
on emp.empno=sales.empno group by emp.ename,sales.saldate;

问题二:查出每个员工每个月总的拜访次数
分析:这里和问题一类似代码如下
select emp.ename ,visit.visitdate ,sum(visit.vistimes)
from emp left join visit on emp.empno=visit.empno
group by emp.ename,visit.visitdate;

问题三:查出每个员工每个城市的销售额
分析: 这里就是按照员工 、初始来分组求和

问题四:列出全年销售额从大到小员工排序及其全年销售额

问题五:列出每个员工当年的销售额和拜访次数
分析:这里可以拆开两张表,一张总销售额表和一张总拜访次数表

问题六:查出拜访次数最多的员工的全年销售额

总结 : with as 作用可以理解为临时表,为了临时用到而先得到的表,好像也可以理解为视图什么的,虽然视图现在还不是明白什么。
With
临时表名(TempTable) As (select 字段 from 表名),
临时表名(TempTable) As (select 字段 from 表名)
.......................................................
Oracle中With As 、Group By 语法的更多相关文章
- Oracle中有关数学表达式的语法
Oracle中有关数学表达式的语法 三角函数 SIN ASIN SINHCOS ACOS COSHTA ...
- Oracle中有关字符串操作的语法
Oracle中有关字符串操作的语法 Oracle提供了丰富的字符串函数 lpad()函数 lpad()函数用于左补全字符串.在某些情况下,预期的字符串为固定长度,而且格式统一,此时可以考虑使用lpad ...
- Oracle中字段的修改操作语法
对字段操作 操作方法 更新字段名 alter table TABLE_NAME rename column column_old to column_new; 添加字段 alter table T ...
- oracle中的function的简单语法定义
1. create or replace 函数名 (参数名 in 类型) return 返回值类型 as 定义变量 begin 函数体 end;
- oracle中sql语句的to_date语法
完整日期:TO_DATE('2009-4-28 00:00:00', 'yyyy-mm-dd hh24:mi:ss'); to_date('2008/09/20','yyyy/mm/dd') 创建视图 ...
- Oracle中没有 if exists(...)
对于Oracle中没有 if exists(...) 的语法,目前有许多种解决方法,这里先分析常用的三种,推荐使用最后一种 第一种是最常用的,判断count(*)的值是否为零,如下declare v ...
- [转]Oracle中没有 if exists(...)
本文转自:http://blog.csdn.net/hollboy/article/details/7550171 对于Oracle中没有 if exists(...) 的语法,目前有许多种解决方法, ...
- Oracle中没有 if exists(...)的解决方法
http://blog.csdn.net/hollboy/article/details/7550171对于Oracle中没有 if exists(...) 的语法,目前有许多种解决方法,这里先分析常 ...
- Oracle中SQL语句学习五(统计分组语句group by和having)
oracle(41) 在 应用系统开发中,进行需要统计数据库中的数据,当执行数据统计时,需要将表中的数据进行分组显示,在统计分组中是通过group by子句.分组函数.having子句共同实现的.其中 ...
随机推荐
- js防止重复点击
表单元素 disabled 没有之一. el.prop('disabled', true); ajax({}).done(function() { el.prop('disabled', false) ...
- redis学习三 redis持久化
1,快照持久化 1简介 redis可以通过创建快照来获得某个时间点上的内存内容的数据副本,有了副本之后,就可以将副本发送到其他redis服务器上从而创建相同数据的从服务器,同时快照留在原 ...
- spring特点与好处
Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development a ...
- node install error
错误:Unexpected end of JSON input while parsing near.... 解决办法: npm cache clean --force
- springmvc 在页面跳转之后 引入文件的路径前面加上了 controller 的映射名
转自:https://zhidao.baidu.com/question/2140453086362943788.html 应该是没有前面的/user的 前端用的是jsp吗,如果是在路径前加${pag ...
- LNMP 1.4 nginx启动脚本和配置文件
编写Nginx启动脚本,写入下面这段,授权755 vim /etc/init.d/nginx #!/bin/bash # chkconfig: - # description: http servic ...
- java GC是在什么时候,对什么东西,做了什么事情?
1.新生代有一个Eden区和两个survivor区,首先将对象放入Eden区,如果空间不足就向其中的一个survivor区上放,如果仍然放不下就会引发一次发生在新生代的minor GC,将存活的对象放 ...
- python爬虫(3)--异常处理
1.URLError 首先解释下URLError可能产生的原因: 网络无连接,即本机无法上网 连接不到特定的服务器 服务器不存在 在代码中,我们需要用try-except语句来包围并捕获相应的异常. ...
- Error: Cannot run program "/home/xxx/android_developer_tools/android-ndk-r8/ndk-build.cmd": Unknown reason
运行OpenCV官方例子 tutorial-2-mixedprocessing 总提示 /home/xxx/android_developer_tools/ 明明在PATH中采用好几种方法都加入了 ...
- CSS制作水平垂直居中对齐 多种方式各有千秋
作为前端攻城师,在制作Web页面时都有碰到CSS制作水平垂直居中,我想大家都有研究过或者写过,特别的其中的垂直居中,更是让人烦恼.这段时间,我收 集了几种不同的方式制作垂直居中方法,但每种方法各有千秋 ...