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" 表:

Company Amount
W3Schools 5500
IBM 4500
W3Schools 7100

和这个SQL语句:

SELECT Company, SUM(Amount) FROM Sales

返回这个结果:

Company SUM(Amount)
W3Schools 17100
IBM 17100
W3Schools 17100

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

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

返回结果:

Company SUM(Amount)
W3Schools 12600
IBM 4500

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

HAVING...

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

语法:

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

这个 "Sales" 表:

Company Amount
W3Schools 5500
IBM 4500
W3Schools 7100

和这个SQL语句:

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

返回这个结果

Company SUM(Amount)
W3Schools 12600

posted on 2006-04-10 10:29  replace  阅读(1503)  评论(1编辑  收藏  举报

导航