zoukankan      html  css  js  c++  java
  • 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  表名)

    .......................................................

  • 相关阅读:
    SQL server 语言基础
    存储过程练习
    触发器
    存储过程
    时间日期函数,类型转化,子查询,分页查询
    数学函数,字符串函数
    用 CREATE TABLE 命令建立表的结构
    结构体,枚举类型
    函数练习
    集合以及特殊集合
  • 原文地址:https://www.cnblogs.com/Jims2016/p/5504521.html
Copyright © 2011-2022 走看看