SQL GROUP BY 详解及简单实例
GROUPBY语句用于结合Aggregate函数,根据一个或多个列对结果集进行分组。
SQLGROUPBY语法
SELECTcolumn_name,aggregate_function(column_name) FROMtable_name WHEREcolumn_nameoperatorvalue GROUPBYcolumn_name;
演示数据库
在本教程中,我们将使用众所周知的Northwind样本数据库。
下面是选自"Orders"表的数据:
OrderID
CustomerID
EmployeeID
OrderDate
ShipperID
10248
90
5
1996-07-04
3
10249
81
6
1996-07-05
1
10250
34
4
1996-07-08
2
选自"Shippers"表的数据:
ShipperID
ShipperName
Phone
1
SpeedyExpress
(503)555-9831
2
UnitedPackage
(503)555-3199
3
FederalShipping
(503)555-9931
选自"Employees"表的数据:
EmployeeID
LastName
FirstName
BirthDate
Photo
Notes
1
Davolio
Nancy
1968-12-08
EmpID1.pic
EducationincludesaBA....
2
Fuller
Andrew
1952-02-19
EmpID2.pic
AndrewreceivedhisBTS....
3
Leverling
Janet
1963-08-30
EmpID3.pic
JanethasaBSdegree....
SQLGROUPBY实例
现在我们想要查找每个送货员配送的订单数目。
下面的SQL语句按送货员进行订单分类统计:
SELECTShippers.ShipperName,COUNT(Orders.OrderID)ASNumberOfOrdersFROMOrders LEFTJOINShippers ONOrders.ShipperID=Shippers.ShipperID GROUPBYShipperName;
GROUPBY一个以上的列
我们也可以对一个以上的列应用GROUPBY语句,如下所示:
SELECTShippers.ShipperName,Employees.LastName, COUNT(Orders.OrderID)ASNumberOfOrders FROM((Orders INNERJOINShippers ONOrders.ShipperID=Shippers.ShipperID) INNERJOINEmployees ONOrders.EmployeeID=Employees.EmployeeID) GROUPBYShipperName,LastName;
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!