SQL中Group By的使用
来源:互联网 发布:银联数据硕士待遇 编辑:程序博客网 时间:2024/09/21 13:49
1、概述
“Group By”从字面意义上理解就是根据“By”指定的规则对数据进行分组,所谓的分组就是将一个“数据集”划分成若干个“小区域”,然后针对若干个“小区域”进行数据处理。
2、原始表
3、简单Group By
示例1
select 类别, sum(数量) as 数量之和from Agroup by 类别
返回结果如下表,实际上就是分类汇总。
4、Group By 和 Order By
示例2
select 类别, sum(数量) AS 数量之和from Agroup by 类别order by sum(数量) desc
返回结果如下表
在Access中不可以使用“order by 数量之和 desc”,但在SQL Server中则可以。
另外一个~
合计函数 (比如 SUM) 常常需要添加 GROUP BY 语句。
GROUP BY 语句
GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。
SQL GROUP BY 语法
SELECT column_name, aggregate_function(column_name)FROM table_nameWHERE column_name operator valueGROUP BY column_name
SQL GROUP BY 实例
我们拥有下面这个 "Orders" 表:
现在,我们希望查找每个客户的总金额(总订单)。
我们想要使用 GROUP BY 语句对客户进行组合。
我们使用下列 SQL 语句:
SELECT Customer,SUM(OrderPrice) FROM OrdersGROUP BY Customer
结果集类似这样:
很棒吧,对不对?
让我们看一下如果省略 GROUP BY 会出现什么情况:
SELECT Customer,SUM(OrderPrice) FROM Orders
结果集类似这样:
上面的结果集不是我们需要的。
那么为什么不能使用上面这条 SELECT 语句呢?解释如下:上面的 SELECT 语句指定了两列(Customer 和 SUM(OrderPrice))。"SUM(OrderPrice)" 返回一个单独的值("OrderPrice" 列的总计),而 "Customer" 返回 6 个值(每个值对应 "Orders" 表中的每一行)。因此,我们得不到正确的结果。不过,您已经看到了,GROUP BY 语句解决了这个问题。
GROUP BY 一个以上的列
我们也可以对一个以上的列应用 GROUP BY 语句,就像这样:
SELECT Customer,OrderDate,SUM(OrderPrice) FROM OrdersGROUP BY Customer,OrderDate
0 0
- SQL中Group By的使用
- SQL中Group By的使用
- SQL中Group By的使用
- SQL中Group By的使用
- SQL中Group By的使用
- SQL中Group By的使用
- SQL中Group By的使用
- SQL中Group By的使用
- SQL中Group By的使用
- SQL中Group By的使用
- SQL中Group By的使用
- SQL中Group By的使用
- SQL中Group By的使用
- SQL中Group By的使用
- SQL中Group By的使用
- SQL中Group By的使用 【转】
- SQL中Group By的使用
- SQL中Group By的使用
- Spark源码解析(一)
- 爱游思 » 大数据编程之MySQL
- MAC平台在Xcode环境中配置使用OpenCV
- 冒泡排序
- C语言基础 程序暂停1秒钟
- SQL中Group By的使用
- OPENCV3.0 函数学习1——imread;namedWindow函数;imshow函数;imwrite函数
- redis
- php 使用CURL函数采集
- 在弹窗中选取被选中的checkbox并且把HTML传给父页面
- MFC中调用exe文件
- linux expect自动登录ssh,ftp
- cache 的设计与实现
- JBOSS 配置Mysql JNDI数据源