
合计函数 (比如 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 |
2 | 2008/11/23 | 1600 | Carter |
3 | 2008/10/05 | 700 | Bush |
4 | 200调8/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 |
Carter | 1700 |
Adams | 2000 |
SELECT Customer,SUM(OrderPrice) FROM Orders
(该语句无法正常运行,原因是Customer没有使用聚合函数,所以必须被包含在GROUP BY 语句中,该语句仅供示例使用,实际上无法运行。)
结果集类似这样:
斗增不械矛状干行造Customer | 至星作物之重买 SUM(OrderPrice) |
---|---|
Bush | 570者误吃练白罗饭0 |
Carter | 5区信具守岩格志何研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