เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

Subqueries ใน SELECT สำหรับการคำนวณ

Subqueries ใน SELECT เป็นวิธีที่มีประโยชน์ในการสร้างคอลัมน์ที่คำนวณค่าได้ภายใน query โดย subquery ใน SELECT จะถูกมองเป็นค่าตัวเลขเดี่ยวที่นำไปใช้ในการคำนวณได้ สิ่งสำคัญที่ต้องจำไว้เมื่อเขียน subquery ใน SELECT คือการกรองข้อมูลใน query หลักจะไม่ส่งผลต่อ subquery และในทางกลับกันก็เช่นเดียวกัน

ในแบบฝึกหัดที่ผ่านมา ได้สร้างคอลัมน์เพื่อเปรียบเทียบค่าเฉลี่ยประตูรวมของแต่ละลีกกับค่าเฉลี่ยประตูโดยรวมในฤดูกาล 2013/2014 ในแบบฝึกหัดนี้ จะเพิ่มคอลัมน์ที่เปรียบเทียบค่าเหล่านี้โดยตรง ด้วยการลบค่าเฉลี่ยโดยรวมจาก subquery ออก

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การจัดการข้อมูลใน SQL

ดูคอร์ส

คำแนะนำการฝึกหัด

  • เลือกค่าเฉลี่ยประตูที่ทำได้ต่อแมตช์ของแต่ละลีกใน query หลัก
  • เลือกค่าเฉลี่ยประตูที่ทำได้ต่อแมตช์โดยรวมสำหรับฤดูกาล '2013/2014' ใน subquery
  • ลบ subquery ออกจากค่าเฉลี่ยประตูที่คำนวณได้ของแต่ละลีก
  • กรอง query หลักให้แสดงเฉพาะเกมจากฤดูกาล '2013/2014' เท่านั้น

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

SELECT
	-- Select the league name and average goals scored
	___ AS league,
	ROUND(___(___ + m.away_goal),2) AS avg_goals,
    -- Subtract the overall average from the league average
	ROUND(AVG(___ + m.away_goal) ___ 
		(SELECT ___(___ + away_goal)
		 FROM match 
         WHERE ___ = ___),2) AS diff
FROM league AS l
LEFT JOIN match AS m
ON l.country_id = m.country_id
-- Only include 2013/2014 results
WHERE ___ = ___
GROUP BY l.name;
แก้ไขและรันโค้ด