-- คิวรี่เพื่อการกระทำทางคณิตศาสตร์ คิวรี่ด้านล่างนี้แสดงผลของการใช้ Aggregate function เช่น SUM, AVG, MIN, MAX

USE AdventureWorks;
GO
SELECT SalesOrderID, ProductID, OrderQty,
(SELECT SUM(OrderQty)
FROM Sales.SalesOrderDetail) AS Total,
(SELECT AVG(OrderQty)
FROM Sales.SalesOrderDetail) AS Average,
(SELECT MIN(OrderQty)
FROM Sales.SalesOrderDetail) AS Minimum,
(SELECT MAX(OrderQty)
FROM Sales.SalesOrderDetail) AS Maximum
FROM Sales.SalesOrderDetail
GO
ผลลัพธ์











-- วิธีทำ Aggregate ข้อมูลเป็นย่าน

USE AdventureWorks;
GO
SELECT SalesOrderID, ProductID, OrderQty
,SUM(OrderQty) OVER(PARTITION BY SalesOrderID) AS 'Total'
,AVG(OrderQty) OVER(PARTITION BY SalesOrderID) AS 'Avg'
,COUNT(OrderQty) OVER(PARTITION BY SalesOrderID) AS 'Count'
,MIN(OrderQty) OVER(PARTITION BY SalesOrderID) AS 'Min'
,MAX(OrderQty) OVER(PARTITION BY SalesOrderID) AS 'Max'
FROM Sales.SalesOrderDetail
WHERE SalesOrderID IN(43659, 43664)
GO
ผลลัพธ์
















-- วิธีหาค่าสะสม

USE Northwind;
SELECT A.ProductID, A.ProductName, A.UnitsInStock,
(SELECT SUM(B.UnitsInStock) FROM Products B
WHERE B.ProductID <= A.ProductID) AS RunningTotal
FROM Products A;
GO

ผลลัพธ์











-- วิธีหาร้อยละ

USE Northwind;
-- SUM ราคาสินค้าที่มี ID 1-10
SELECT SUM(UnitPrice) AS TotalProductPrice
FROM Products
WHERE ProductID < 11;
GO

-- สร้างเซตหลัก
SELECT
ProductID AS Code,
UnitPrice AS [Product price],
(UnitPrice/myTotal)*100 AS [----%----]
FROM
(
-- หาราคาสินค้ารวมแต่ละ ID เก็บเป็นค่า myTotal
SELECT
ProductID,
UnitPrice,
SUM(UnitPrice) OVER() AS myTotal
FROM Products
WHERE ProductID < 11
)x
GO
ผลลัพธ์

















ตอนต่อไปจะดูเรื่องการกระทำกับเวลากันครับ


0

Add a comment

    Loading