新闻资讯
看你所看,想你所想

SQL GROUP BY

合计函数 (比如 SUM) 宽入器司同常常需要添加 GR做齐系波丰强粮板根OUP BY 语句。

  • 外文名 SQL GROUP BY
  • 属    于 编程
  • 性    质 科技
  • 类    别 计算机学

正文

介绍

  合计函数 (比如 SUM) 常常需要添加 GROUP BY 语句。

  GROUP BY 语句

  GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。

  SQL GROUP BY 语法

  SELECT column_name, aggregate_function(c来自olumn_name)FROM table_nameWHERE col360百科umn_name operator valueGROUP BY column_name

实例

  我们拥有说末由条查小下面这个 "Orders" 表:

  O_Id

  OrderDate

  OrderPric旧乱征停兴治用伟e

  Customer

  1

  2008/12/呀银剂29

  1000

  Bush

22008/11/231600Carter

  3

  2008/10/05

  700

  Bush

  4

  2008/09/28

  300

  Bush

  5

  任续粒任动刑概章电坐李2008/08/06

  2000

  Adams

  6

  2008/07/21

  怀取握对做100

  Carter

  现在,我们希望查找每个客户的总金额(总订单)。

  我们想要使用 GROU额宗P BY 语句对客户进行组合。

  我们使用下列 SQL 语句:

  SELECT Custom乡干仅星er,SUM(OrderPrice) FROM OrdersGROUP BY Customer结果集类似这样:

  Customer

  SUM(抗作热木表带全龙确弱西OrderPrice)

  Bush

  2000

Carter1700

  Adams

  2000

  SELECT Customer,SUM(OrderPrice) FROM Orders

  (该语句无法正常运行,原因是Customer没有使用聚合函数,所以必须被包含在GROUP BY 语句中,该语句仅供示例使用,实际上无法运行。)

  结果集类似这样:

  斗增不械矛状干行造Customer

至星作物之重买  SUM(OrderPrice)

  Bush

  570者误吃练白罗饭0

Carter5区信具守岩格志何研700

  Bush

  5700

  Bush

  5700

  Adams

  5700

  Carter

  5700

  上面的盐办解排伟结果集不是我们需要的。

  那么为什么不能使用上面这条 SELECT 语句呢?解释如下:上面的 SELECT 业采皮热小罗艺句新裂语句指定了两列(Customer 和 SUM(OrderPri气括早ce))。"SUM(OrderPrice)" 返回一个单独的值("OrderPrice" 列的总计),而 "Customer" 返回 6 个值(每个值对应 "Orders" 表中的每一行)。因此,我们得不到正确的结果。不过,您已经看到了强置误府室装独师,GROUP BY 语句解决了这个问题。

列表

  我们也可以对一个以上的列应用 GROUP BY 语句,就像这样:

  SELECT Customer,OrderDate,SUM(OrderPrice) FROM OrdersGROUP BY Customer,OrderDate

  特别注意:

  group by 有一个原则,就是 select 后面的所有列中,没有使用聚合函数的列,必须出现在 group by 后面。

转载请注明出处安可林文章网 » SQL GROUP BY

相关推荐

    声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:fendou3451@163.com