zoukankan      html  css  js  c++  java
  • oracle having sum group by 详解

    Aggregate functions (like SUM) often need an added GROUP BY functionality. 

    集合函数(类似SUM)经常需要用GROUP BY来进行功能性的补充。 


    GROUP BY... 

    GROUP BY... was added to SQL because aggregate functions (like SUM) return the aggregate of all column values every time they are called, and without the GROUP BY function it was impossible to find the sum for each individual group of column values. 

    GROUP BY...之所以加到SQL中去是因为集合函数(像SUM)每当他们被访问时就会返回集合所有栏目的值,而且没有GROUP BY的话就不能够找出单独一种栏目所累计的值了。 

    The syntax for the GROUP BY function is: 

    使用GROUP BY函数的语法为: 

    SELECT column,SUM(column) FROM table GROUP BY column 





    GROUP BY Example 

    举例 

    This "Sales" Table: 

    这是张名为"Sales"的表: Company Amount 
    W3Schools 5500 
    IBM 4500 
    W3Schools 7100 


    And This SQL: 

    这是条SQL: 

    SELECT Company, SUM(Amount) FROM Sales 





    Returns this result: 

    返回的结果为: Company SUM(Amount) 
    W3Schools 17100 
    IBM 17100 
    W3Schools 17100 


    The above code is invalid because the column returned is not part of an aggregate. A GROUP BY clause will solve this problem: 

    上面这些代码几乎是无效的,因为栏目所返回的数值并不属于我们想要的那种合计。使用 GROUP BY子句可以解决这个问题: 

    SELECT Company,SUM(Amount) FROM Sales 
    
    GROUP BY Company 





    Returns this result: 

    返回的结果为: Company SUM(Amount) 
    W3Schools 12600 
    IBM 4500 




    HAVING... 

    HAVING... was added to SQL because the WHERE keyword could not be used against aggregate functions (like SUM), and without HAVING... it would be impossible to test for result conditions. 

    WHERE关键字在使用集合函数时不能使用,所以在集合函数中加上了HAVING来起到测试查询结果是否符合条件的作用。 

    The syntax for the HAVING function is: 

    HAVING的使用语法为: 

    SELECT column,SUM(column) FROM table 
    
    GROUP BY column 
    
    HAVING SUM(column) condition value

     



    This "Sales" Table: 

    这是名为"Sales"的表: Company Amount 
    W3Schools 5500 
    IBM 4500 
    W3Schools 7100 


    This SQL: 

    SQL语句: 

    SELECT Company,SUM(Amount) FROM Sales 
    
    GROUP BY Company 
    
    HAVING SUM(Amount)>10000 


    Returns this result 

    返回的结果为 Company SUM(Amount) 
    W3Schools 12600



  • 相关阅读:
    开放的Web平台才是是我们想要的——HTML5变为HTML
    Web字体格式介绍及浏览器兼容性一览
    E百科 | 基于MEC的边缘AI服务
    技术改变生活 浅谈阿里云混合云的探索与实践
    阿里云CDN产品经理陈章炜:边缘创新技术和落地实践
    什么是微内核架构设计?
    技术干货 | 深度解构 Android 应用面临紧急发版时的救星方案:mPaaS 热修复——DexPatch
    如何接地气地接入微前端?
    阿里云原生应用安全防护实践与 OpenKruise 的新领域
    函数计算镜像加速:从分钟到秒的跨越
  • 原文地址:https://www.cnblogs.com/CandiceW/p/10063197.html
Copyright © 2011-2022 走看看