SQL学习之group by
昨天去58同城面试,被问及sql中如何用一条语句查询出同一字段中每个不同值的记录数。由于不常用该类查询,基础知识忘记,完败。今日重温,以作备忘:
"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 |
1、我们希望查找每个客户的总金额(总订单)。
可以使用 GROUP BY 语句对客户进行组合。
SQL 语句如下:
SELECT Customer,SUM(OrderPrice) FROM Orders GROUP BY Customer
2、我们希望查找每个客户的订单数,并按照订单数升序排序
SQL语句如下:
SELECT Customer,count(Customer) FROM Orders GROUP BY Customer ORDER BY count(Customer)
参考http://www.w3school.com.cn/sql/sql_groupby.asp