GROUP BY 一个以上的列

简介: GROUP BY 一个以上的列

如果省略 GROUP BY 会出现什么情况:

SELECT Customer,SUM(OrderPrice) FROM Orders
结果集类似这样:

Customer SUM(OrderPrice)
Bush 5700
Carter 5700
Bush 5700
Bush 5700
Adams 5700
Carter 5700
上面的结果集不是我们需要的。

那么为什么不能使用上面这条 SELECT 语句呢?解释如下:上面的 SELECT 语句指定了两列(Customer 和 SUM(OrderPrice))。"SUM(OrderPrice)" 返回一个单独的值("OrderPrice" 列的总计),而 "Customer" 返回 6 个值(每个值对应 "Orders" 表中的每一行)。因此,我们得不到正确的结果。不过,您已经看到了,GROUP BY 语句解决了这个问题。

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

SELECT Customer,OrderDate,SUM(OrderPrice) FROM Orders
GROUP BY Customer,OrderDate

目录
相关文章
|
3月前
|
SQL 数据挖掘 数据库
|
6月前
|
SQL 存储 Oracle
为什么 GROUP BY 之后不能直接引用原表中的列
为什么 GROUP BY 之后不能直接引用原表中的列
43 1
|
6月前
|
关系型数据库 MySQL Java
MySQL group by分组后,将每组所得到的id拼接起来
MySQL group by分组后,将每组所得到的id拼接起来
98 0
|
存储 关系型数据库 MySQL
MySQL中count是怎样执行的?———count(1),count(id),count(非索引列),count(二级索引列)的分析
MySQL中count是怎样执行的?———count(1),count(id),count(非索引列),count(二级索引列)的分析
160 0
MySQL中count是怎样执行的?———count(1),count(id),count(非索引列),count(二级索引列)的分析
|
存储 关系型数据库
|
程序员 数据库 索引
|
SQL Go
【SQL】ROW_NUMBER() OVER(partition by 分组列 order by 排序列)用法详解+经典实例
【SQL】ROW_NUMBER() OVER(partition by 分组列 order by 排序列)用法详解+经典实例目录 0、填充数据1、使用row_number()函数对订单进行编号,按照订单时间倒序。
13129 0