Post by Goborijung at 2019-12-09 13:22:43 | ID: 250
Ex. -- การหาค่าเฉลี่ยของราคาสินค้าทั้งหมด SELECT AVG(ListPrice) FROM Product -- การหาค่าเฉลี่ย โดยตัดราคาที่ซ้ำกันออกก่อน แล้วค่อยหาค่าเฉลี่ย SELECT AVG(DISTINCT ListPrice) FROM Product
Post by Goborijung at 2019-12-09 13:17:10 | ID: 249
Ex. SELECT DISTINCT Color FROM Product WHERE Color IS NOT NULL ORDER BY Color หรือจะใช้ GROUP BY แทนก็ได้ SELECT Color FROM Product WHERE Color IS NOT NULL GROUP BY Color ORDER BY Color
Post by Goborijung at 2019-12-09 10:19:49 | ID: 243
SELECT column_id SUM(column_name) AS new_var FROM table_name WHERE YEAR(column_date) = 2019 GROUP BY column_id Ex. SELECT CustomerID SUM(SubTotal) AS Total, COUNT(*) AS TotalBill FROM SalesOrder WHERE YEAR(OrderDate) = 2012 GROUP BY CustomerID
Post by Goborijung at 2021-01-15 15:12:44 | ID: 246
คำสั่ง HAVING ใช้กรองข้อมูลที่ได้จาก GROUP BY HAVING จะใช้ตรวจสอบผลที่ได้จากการจัดกลุ่มแล้วเท่านั้น Ex. SELECT CustomerID SUM(SubTotal) AS Total, COUNT(*) AS TotalBill FROM SalesOrder WHERE YEAR(OrderDate) = 2019 GROUP BY CustomerID HAVING SUM(SubTotal) >= 100000 จากตัวอย่าง จะเห็นว่าเงื่อนไข WHERE เป็นการดึงข้อมูลเฉพาะปี 2019 จากนั้น จะจัดกลุ่มและหาผลรวมของยอดซื้อ จากนี้น จะนำผลรวมไปตรวจสอบว่า มียอดสั่งซื้อตั้งแต่ 100,000 บาทขึ้นไปหรือไม่ ถ้ามีก็ให้แสดงข้อมูลออกมา >> ตัวอย่าง Query จริง (gssv2) SELECT PONo, SUM(UnitCost) AS TotalUnitCost, COUNT(*) AS TotalBill FROM TM_PO WHERE YEAR(PODate) = 2019 GROUP BY PONo HAVING SUM(UnitCost) >= 100000
Post by Goborijung at 2019-12-10 09:12:07 | ID: 258
INNER JOIN เป็นการเชื่อมตั้งแต่ 2 ตารางขึ้นไปเข้าด้วยกัน โดยอาศัยคอลัมที่มีความสัมพันธ์กัน มาทำการเชื่อมโยงข้อมูลเข้าด้วยกัน เงื่อนไขคือ ดึงเฉพาะคอลัมที่มีข้อมูลตรงกัน จากทั้งสองตาราง Ex. SELECT * FROM table_a INNER JOIN table_b ON table_a.ProductID = table_b.ProductID หรือ SELECT u.UserName,u.NickName,s.Name AS SectionName FROM [User] u INNER JOIN Section s ON u.Section = s.OID WHERE u.NickName IS NOT NULL หรือ SELECT u.UserName,u.NickName,s.Name AS SectionName FROM [User] AS u INNER JOIN Section AS s ON u.Section = s.OID WHERE u.NickName IS NOT NULL
Post by Goborijung at 2019-12-09 14:30:43 | ID: 254
Ex. SELECT ContactID,Name,LastName INTO new_table FROM old_table
Post by Goborijung at 2019-12-09 14:19:08 | ID: 253
Ex. SELECT NTILE(100) OVER(ORDER BY POQty) AS No, * FROM TM_PO จากตัวอย่าง จะเป็นการแบ่งกลุ่มข้อมูลออกเป็นกลุ่มละ 100
Post by Goborijung at 2019-12-09 14:13:13 | ID: 252
Ex. SELECT RANK() OVER(ORDER BY POQty) AS Ranks, DENSE_RANK() OVER(ORDER BY POQty) AS DenseRank, * FROM TM_PO
Post by Goborijung at 2019-12-09 13:25:31 | ID: 251
Ex. SELECT TOP 10 ProductID, Name, Color FROM Product
Post by Goborijung at 2019-12-10 08:22:23 | ID: 257
WITH UserNames (Column_OID,Column_UserName) AS ( SELECT OID,(UserName+' | '+FullName+' | '+NickName) FROM [User] ) SELECT * FROM UserNames WHERE Column_UserName IS NOT NULL