การใช้ Alias - BMI รายทีม
นักสถิติบาสเกตบอลต้องการทราบค่าเฉลี่ย Body Mass Index (BMI) ของแต่ละทีม NBA โดยเฉพาะทีมที่มีค่าเฉลี่ย BMI ตั้งแต่ 25 ขึ้นไป ในการนำ Team เข้ามาในคิวรี จะต้อง JOIN ตาราง Players กับตาราง PlayerStats คิวรีนี้ต้องใช้การตั้ง alias เพื่อ:
- ระบุตารางที่ JOIN และคอลัมน์ที่เกี่ยวข้องได้ง่าย
- ระบุ sub-query
- หลีกเลี่ยงความกำกวมของชื่อคอลัมน์
- ระบุคอลัมน์ใหม่ที่สร้างขึ้น
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การปรับปรุงประสิทธิภาพคิวรีใน SQL Server
คำแนะนำการฝึกหัด
- กำหนด alias ให้คอลัมน์ค่าเฉลี่ย BMI ใหม่เป็น
AvgTeamBMI - กำหนด alias ให้ตาราง
PlayerStatsเป็นps - กำหนด alias ให้ sub-query เป็น
p - ตาราง
PlayerStatsและ sub-query เชื่อมกันด้วยคอลัมน์PlayerNameเพิ่ม alias ให้กับคอลัมน์PlayerNameที่ใช้ในการ JOIN ด้วย
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
SELECT Team,
ROUND(AVG(BMI),2) AS ___ -- Alias the new column
FROM PlayerStats ___ ___ -- Alias PlayerStats table
INNER JOIN
(SELECT PlayerName, Country,
Weight_kg/SQUARE(Height_cm/100) BMI
FROM Players) ___ ___ -- Alias the sub-query
-- Alias the joining columns
ON ___.PlayerName = ___.PlayerName
GROUP BY Team
HAVING AVG(BMI) >= 25;