zoukankan      html  css  js  c++  java
  • 使用WITH子句重用子查询

    使用WITH子句重用子查询     

        从Oracle9i开始,通过WITH子句可以给子查询指定一个名称,并且使得在一条语句中可以完成所有任务,从而避免使用临时表。      

        如显示部门工资总和高于雇员工资总和三分之一的部门名称及工资总和。

    Sql代码---

    WITH summary AS (SELECT dname,SUM(sal)  AS dept_total

                                  FROM emp,dept 

                                  WHERE emp.deptno=dept.deptno 

                                 GROUP BY dname)  

            SELECT dname, dept_total 

            FROM summary

            WHERE dept_total>(  SELECT SUM(dept_total) * 1/3 FROM summary); 

     使用WITH语句建立对工资求和并求平均值的可重用查询代码。
    WITH
    dept_sum  AS  (SELECT d.dname,sum(e.sal) total              

                           FROM dept d, emp e

                           WHERE d.deptno=e.deptno

                           GROUP by d.dname),

    dept_avg_sum  AS  (SELECT sum(total)/count(*) avg_sum  FROM dept_sum)

    其中,dept_sum和dept_avg_sum是被定义的两个子查询名字,引用方法如下:
    SELECT dname,total  FROM dept_sum
    WHERE total>(SELECT avg_sum FROM dept_avg_sum)

    运行结果为:
    DNAME  TOTAL
    -------------- ---------- RESEARCH  13075
     

  • 相关阅读:
    EasyUI treegrid 加载checked
    html 文字垂直居中
    SQLSERVER 2008 查询数据字段名类型
    EasyUI TreeJson
    win7 网站发布备注
    LVS Nginx HAProxy 优缺点
    快速安装laravel和依赖
    Whoops, looks like something went wrong
    View.findViewById()和Activity.findViewById()区别
    ListView下拉刷新,上拉自动加载更多
  • 原文地址:https://www.cnblogs.com/rainowl-ymj/p/4602282.html
Copyright © 2011-2022 走看看