ไม่พบคอลัมน์
เมื่อใช้ WHERE เป็นเงื่อนไขกรอง สิ่งสำคัญคือต้องคำนึงถึงลำดับการประมวลผลในคิวรี ในแบบฝึกหัดนี้ เราต้องการคิวรีที่คืนค่าข้อมูลนักบาสเก็ตบอล NBA ที่มีค่าเฉลี่ยการรีบาวด์รวมต่อเกม 12 ครั้งขึ้นไป สูตรต่อไปนี้ใช้คำนวณค่าเฉลี่ยการรีบาวด์รวมจากตาราง PlayerStats
$$Average Total Rebounds = \dfrac{(Defensive Rebounds + Offensive Rebounds)}{Games Played}$$
คิวรีแรกใน ขั้นตอนที่ 1 จะเกิดข้อผิดพลาด กด รันโค้ด เพื่อดูข้อผิดพลาดนั้น ส่วนคิวรีที่สองใน ขั้นตอนที่ 2 จะให้ผลลัพธ์ที่ต้องการโดยไม่เกิดข้อผิดพลาด โดยใช้ sub-query
ทั้งนี้ GamesPlayed ถูก CAST AS numeric เพื่อให้ผลลัพธ์แสดงเป็นตัวเลขทศนิยม แทนที่จะเป็นจำนวนเต็ม
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การปรับปรุงประสิทธิภาพคิวรีใน SQL Server
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
-- First query
SELECT PlayerName,
Team,
Position,
(DRebound+ORebound)/CAST(GamesPlayed AS numeric) AS AvgRebounds
FROM PlayerStats
WHERE AvgRebounds >= 12;