官术网_书友最值得收藏!

GROUP BY

GROUP BY aggregates the results on the required column names or expressions. Building on the same example from the ORDER BY section, we want to know the overall product quantity per product name and location, from the following code snippet. The Quantity column is using the aggregate function SUM. Therefore, the remaining columns need to be contained in the aggregation GROUP BY clause:

SELECT P.Name AS ProductName, SUM([PI].Quantity) AS Total_Quantity, L.Name AS LocationName
FROM Production.Product AS P
INNER JOIN Production.ProductInventory AS [PI] ON P.ProductID = [PI].ProductID
INNER JOIN Production.Location AS L ON [PI].LocationID = L.LocationID
WHERE P.Name LIKE 'Touring%'
GROUP BY P.Name, L.Name
ORDER BY P.Name DESC, L.Name DESC;

The following screenshot shows the results with one row per set as defined by the GROUP BY clause:

Aggregations can be further specified by using the following keywords:

  • ROLLUP: Specifies the creation of subtotals and totals for the required column names or expressions.
  • CUBE: Specifies the creation of subtotals and totals for all combinations of columns in the GROUP BY clause.
  • GROUPING SETS: Allows the use of multiple GROUP BY clauses, such as using ROLLUP and CUBE together.
主站蜘蛛池模板: 扶绥县| 南澳县| 阳泉市| 开江县| 道真| 麻栗坡县| 怀仁县| 华亭县| 南丰县| 望城县| 米易县| 丹寨县| 远安县| 新密市| 郎溪县| 河南省| 鹤峰县| 亚东县| 德庆县| 阳新县| 鹤峰县| 丹东市| 黎川县| 巩留县| 信阳市| 永清县| 开鲁县| 北海市| 繁昌县| 黔西县| 鄂尔多斯市| 白河县| 信宜市| 台南市| 清苑县| 大竹县| 西昌市| 北碚区| 改则县| 凤冈县| 都兰县|