sql,group by的使用

来源:互联网 发布:淘宝联盟电脑版 编辑:程序博客网 时间:2024/05/01 04:39

我们拥有下面这个 "Orders" 表:
O_Id
OrderDate
OrderPrice
Customer
1
2008/12/29
1000
Bush
2
2008/11/23
1600
Carter
3
2008/10/05
700
Bush
4
2008/09/28
300
Bush
5
2008/08/06
2000
Adams
6
2008/07/21
100
Carter

为什么这样不行?

SELECT Customer,OrderDate FROM Orders GROUP BY Customer

为什么这样却行?

现在,我们希望查找每个客户的总金额(总订单)。
我们想要使用 GROUP BY 语句对客户进行组合。
我们使用下列 SQL 语句:
SELECT Customer,SUM(OrderPrice) FROM Orders GROUP BY Customer结果集类似这样:
Customer
SUM(OrderPrice)
Bush
2000
Carter
1700
Adams
2000

===============================================================解答:

因为,使用group by 子句,select 后面只能跟group by子句中的列或组函数,sum是聚合函数。常用的聚合函数有max、min、count、sum

如果我要查消费次数超过1次的消费者名字,以及消费的次数,就使用到了count聚合函数,语句如下

SELECT Customer,COUNT(*) FROM Orders GROUP BY Customer having count(Customer)>1


参考链接:

http://zhidao.baidu.com/link?url=b6D_542Tcozqu_qPL4hW3s92KUOXh5X6a5Pd1kjc_hCdN6Sp7mzwyIRlgJOoWzzHrUNeIhZcLNxNi9vZqIpWt_


0 0