SQL指南-GROUP BY 和 HAVING

聚会函数 (如 SUM) 常需要附加GROUP BY

-----------------------------------------------

GROUP BY...

GROUP BY... 被附加于SQL 是因为聚会函数 (如 SUM) 每次都返回所有列值的合计,没有GROUP BY函数是不可能找到列值的单个分组的合计数。

语法

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

-----------------------------------------------

GROUP BY 示例

这个 "Sales" 表:

CompanyAmount
W3Schools5500
IBM4500
W3Schools7100

和这个SQL语句:

SELECT Company, SUM(Amount) FROM Sales

返回这个结果:

CompanySUM(Amount)
W3Schools17100
IBM17100
W3Schools17100

上面的代码是不正确的,因为被返回的列不是部分合计。GROUP BY 子句将解决这个问题。

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

返回结果:

CompanySUM(Amount)
W3Schools12600
IBM4500

-----------------------------------------------

HAVING...

HAVING... 被附加到SQL语句是因为WHER关键字不能被用于聚会函数 (如 SUM),并且没有HAVING...它将不可能测试结果条件。

语法:

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

这个 "Sales" 表:

CompanyAmount
W3Schools5500
IBM4500
W3Schools7100

和这个SQL语句:

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

返回这个结果

CompanySUM(Amount)
W3Schools12600

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值