`
shawnccx
  • 浏览: 165673 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

SQL sum和group by一起用

阅读更多
SQL Sum Group By

sqlserver 2009-10-13 21:22:47 阅读856 评论0
字号:大中小





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
分享到:
评论

相关推荐

    简单讲解sql语句中的group by的使用方法

    group by 就是依据by 后面的规则对数据分组,所谓的分组就是讲数据集划分成若干个’小组’,针对若干个小组做处理。 2.语法规则 SELECT column_name, aggregate_function(column_name) FROM table_name WHERE ...

    SQL 语法 SQL 总结 SQL教程

    SQL 基础 SQL 首页 SQL 简介 SQL 语法 ...SQL Group By SQL Having SQL ucase() SQL lcase() SQL mid() SQL len() SQL round() SQL now() SQL format() SQL 总结 SQL 快速索引 SQL 总结

    LINQ to SQL手册

    LINQ to SQL语句(6)之Group By/Having LINQ to SQL语句(7)之Exists/In/Any/All/Contains LINQ to SQL语句(8)之Concat/Union/Intersect/Except LINQ to SQL语句(9)之Top/Bottom和Paging和SqlMethods LINQ to SQL语句...

    sql中 order by 和 group by的区别

     使用group by 的目的就是要将数据分类汇总。 一般如: select 单位名称,count(职工id),sum(职工工资) form [某表] group by 单位名称 这样的运行结果就是以“单位名称”为分类标志统计各单位的职工人数

    详解partition by和group by对比

    今天大概弄懂了partition by和group by的区别联系。 1. group by是分组函数,partition by是分析函数(然后像sum()等是聚合函数); 2. 在执行顺序上, 以下是常用sql关键字的优先级 from > where > group by > ...

    浅谈sql语句中GROUP BY 和 HAVING的使用方法

    在介绍GROUP BY 和 HAVING 子句前,我们必需先讲讲sql语言中一种特殊的函数:聚合函数, 例如SUM, COUNT, MAX, AVG等。...通过使用GROUP BY 子句,可以让SUM 和 COUNT 这些函数对属于一组的数据起作用。

    详解SQL中Group By的用法

    GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。 1、概述 “Group By”从字面意义上理解就是根据“By”指定的规则对数据进行分组...select 类别, sum(数量) AS 数量之和 from A group by 类别 or

    SQL语句将行转换成列

    select @sql = @sql+' from 表 group by 物料代码' exec(@sql) 简化如下: select (select 物料代码 , sum(case 地区 when '地区' then 数量 end)[地区], sum(case 地区 when '地区' then 比率 end)[比率] ...

    case when和sum case when 写法及拼接字段

    1 case when 写法 2 sum case when 用法 3 select 拼接字段 示例如下: when 2 then 'C' else 'D' end ) as '类型',count(*) as '数量' from table group by orderType

    深入解析mysql中order by与group by的顺序问题

    mysql 中order by 与group by的顺序是:selectfromwheregroup byorder by注意:group by 比order by先执行,order by不会对group by 内部进行排序,如果group by后只有一条记录,那么order by 将无效。要查出group ...

    Django框架models使用group by详解

    Django框架models使用group by详解: 首先,看下列代码: UserData.objects.filter(hubid=sensorid,time__range=(time2,time1)).values(‘hour’).annotate(sum_out=Sum(‘outdoor’), sum_in=Sum(‘indoor’), sum...

    探讨SQL compute by的使用分析

    当与BY一起使用时,COMPUTE 子句在结果集内生成控制中断和分类汇总。 下列 SELECT 语句使用简单 COMPUTE 子句生成 titles 表中 price 及 advance 的求和总计: 代码如下:USE pubsSELECT type, price, advanceFROM ...

    Oracle中分组查询group by用法规则详解

    在select 语句中可以使用group by 子句将行划分成较小的组,一旦使用分组后select操作的对象变为各个分组后的数据,使用聚组函数返回的是每一个组的汇总信息。 使用having子句 限制返回的结果集。group by 子句可以...

    MongoDB 中聚合统计计算–$SUM表达式

    以上两种情况的聚合统计,分别对应与聚合框架中的 $group 操作步骤和 $project 操作步骤。 1.$group 直接看例子吧。 Case 1 测试集合mycol中的数据如下: { title: 'MongoDB Overview', description: 'MongoDB is...

    SQL常用语句.zip

    sql语句 SQL(Structured Query Language,结构化...常与聚合函数(如COUNT、SUM、AVG等)一起使用。例如,统计每个部门的员工数量,可以使用“SELECT department, COUNT(*) FROM employees GROUP BY department”。

    LINQ_to_SQL.zip_SUM_linq

    C#开发相关技术点。LINQ to SQL语句,Where、Select/Distinct、Count/Sum/Min/Max/Avg、Order By、Group By/Having等。

    mysql中order by与group by的区别

    order by 从英文里理解就是行的排序方式,默认的为升序。 order by 后面必须列出排序的字段名,可以是... 您可能感兴趣的文章:sql中 order by 和 group by的区别深度分析mysql GROUP BY 与 ORDER BYgroup by,having,o

    Mysql中order by、group by、having的区别深入分析

    一般如: select 单位名称,count(职工id),sum(职工工资) form [某表] group by 单位名称 这样的运行结果就是以“单位名称”为分类标志统计各单位的职工人数和工资总额。 在sql命令格式使用的先后

    SQLQuery5.sql

    from KuChun t1 left join (select SellID, sum(sellnum)as snum,ProductType from Sell group by SellID,ProductType)t2 on t1.ShopID=t2.SellID and t1.ProductType=t2.ProductType order by t1.ShopID ...

    优化sql的测试数据

    优化sql的数据。 select * from (select PI.ID AS ProductID,PI.SynapsID,PI.NameCode,PI.Name_cn,PI.Name_en,PP.PicName,PI.BarCode, PI.NewLevel,PI.`Status`,PI.HighPrice,CPM.SalesPlaceID, psi.WIID,psi....

Global site tag (gtag.js) - Google Analytics