Subquery เป็นเหมือนกับการ Query ในภาษา SQL หรือคือการเขียน Show SELECT column_1, column_2 FROM table1 ตัวอย่างการใช้ Subquery ในภาษา SQL คือ SELECT ... FROM ( SELECT ...
จากคำสั่งข้างบน SELECT ... FROM ( SELECT ...
1 คือ Subquery นั่นเองหากใครอ่านมาถึงตรงนี้โดยที่ยังไม่รู้จักภาษา SQL สามารถอ่านเพิ่มเติมได้ที่นี่ ประโยชน์หรือข้อดีของ SubquerySubquery สามารถคืนค่าหลายรูปแบบการคืนค่าได้หลายรูปแบบนี้ทำให้เราสามารถนำไปใช้ประโยชน์ต่อได้หลายรูปแบบมากยิ่งขึ้น
Subquery สามารถเอาไปใช้ได้หลายที่
ตัวอย่างการใช้ Subqueryเพื่อให้เห็นภาพการใช้งาน Subquery มากขึ้น จะขอยกตัวอย่างโดยใช้ข้อมูลภาพยนตร์จากวิกิพีเดีย ที่ประกอบไปด้วย ข้อมูล 4 คอลัมน์ ดังรูป โดยเป็นการ Query ด้วยชุดคำสั่ง SELECT * FROM thai_boxoffice ORDER BY studio, gross การใช้ Subquery ใน SELECT Clauseจากตัวอย่างข้างต้น แต่ละ Studio จะมีภาพยนตร์หลายเรื่อง ถ้าเราต้องการเพิ่มคอลัมน์ SELECT ... FROM ( SELECT ...
8 ที่จะแสดงรายได้สูงสุดของภาพยนตร์ในค่ายนั้น สามารถทำได้โดยการเพิ่ม Subquery เข้าไปSELECT *, FROM thai_boxoffice m
ORDER BY studio, grossจากชุดคำสั่งข้างบน เราได้ทำการเพิ่ม Subquery เข้าไปเพื่อทำการคำนวณหาค่า SELECT ... FROM ( SELECT ...
9 และเพิ่มเข้าไปเป็นคอลัมน์ใหม่ที่ชื่อว่า SELECT ... FROM ( SELECT ...
8 และตั้งชื่อของตาราง (Alias) SELECT * FROM thai_boxoffice ORDER BY studio, gross 1 ที่ Main Query เป็น SELECT * FROM thai_boxoffice ORDER BY studio, gross 2 โดยเขียนชื่อ Alias เข้ามาต่อท้าย SELECT * FROM thai_boxoffice ORDER BY studio, gross 1 เพื่อให้สามารถกำหนดเงื่อนไข SELECT ... FROM ( SELECT ...
6 ใน Subquery ให้ filter มาเฉพาะแถวที่ SELECT * FROM thai_boxoffice ORDER BY studio, gross 5 (การที่เรากำหนดเงื่อนไขนี้ จะทำให้เห็นว่า subquery นี้เป็น Correlated Subquery) ผลลัพท์จากคำสั่งข้างต้น อีกวิธีที่ทำได้ คือเราสามารถนำไปใช้ร่วมกับคำสั่ง JOIN ได้ด้วยคำสั่ง SELECT m.*, mm.studio_max_gross FROM thai_boxoffice m JOIN ( SELECT studio, MAX(gross) AS studio_max_gross ON m.studio = mm.studio
ORDER BY studio, grossการใช้ Subquery ในSELECT ... FROM ( SELECT ...
6 Clauseจากตัวอย่างเดิม เราต้องการแสดงเฉพาะรายละเอียดภาพยนตร์ที่ทำรายได้สูงสุดของแต่ละค่าย สามารถทำได้โดยการเพิ่ม Subquery เข้าไปในเงื่อนไข SELECT * FROM thai_boxoffice m WHERE gross = ( SELECT MAX(gross) ORDER BY studioจากชุดคำสั่งข้างบน เราได้ทำการเพิ่ม Subquery เข้าไปเพื่อเป็นเงื่อไขในการ filter ค่า gross จาก mainquery SELECT * FROM thai_boxoffice ORDER BY studio, gross 7 ของ Subquery ผลลัพท์จากคำสั่งข้างต้น อีกวิธีที่ทำได้ คือเราสามารถนำไปใช้ร่วมกับคำสั่ง JOIN ได้ด้วยคำสั่ง SELECT m.* FROM thai_boxoffice m JOIN ( SELECT studio, MAX(gross) AS studio_max_gross ON m.studio = mm.studio
WHEREE m.gross = mm.studio_max_gross
ORDER BY studioนี่เป็นเพียงส่วนหนึ่งของ Subquery เท่านั้น และในความเป็นจริงก็มีวิธีอื่นที่สามารถทำให้ได้ผลลัพธ์อยู่เหมือนกัน ความเร็วในการทำงานก็อาจจะแตกต่างกันออกไป เช่น การใช้คำสั่ง JOIN หากใครต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ Subquery และคำสั่งอื่นๆ ที่จะช่วยให้คุณใช้งาน SQL ได้อย่างเต็มประสิทธิภาพมากยิ่งขึ้น สามารถทดลองเรียน ดูตัวอย่างบทเรียนพร้อมทดลองเขียนภาษา SQL ได้ที่ Excel drop down list ทำยังไงวางเม้าส์ ในตำแหน่ง Cell ที่ต้องการสร้าง List.. เมนู Data -> Data Validation.. จาก Any Values - > List.. พิมพ์ List ที่เราต้องการเข้าไปได้เลย เสร็จแล้ว คลิก OK ก็จะได้ List ในช่องที่ เอาเม้าส์ วางไว้. กด Refresh Excel ยังไงใน Excel ให้เลือกเซลล์ในคิวรีในเวิร์กชีต เลือกแท็บ คิวรี ใน Ribbon แล้วเลือก รีเฟรช > รีเฟรช Text Filter in Excel ใช้ยังไงกรองช่วงของข้อมูล. เลือกเซลล์ใดๆ ภายในช่วง. เลือก ตัวกรอง> ข้อมูล. เลือกลูกศรส่วนหัวของคอลัมน์. เลือก ตัวกรองข้อความ หรือ ตัวกรองตัวเลข แล้วเลือกการเปรียบเทียบ เช่น ระหว่าง. ใส่เกณฑ์การกรอง แล้วเลือก ตกลง. Checkbox Excel ทํายังไงคลิกที่ "Insert" (แทรก) และเลื่อนไปทางขวาของเมนูจนเจอ "Forms" (ฟอร์ม) เลือกแถวที่คุณต้องการแทรกกล่องเช็คใน Excel ของคุณ คลิกที่ "Forms" (ฟอร์ม) และเลือก "Checkbox" (กล่องเช็ค) จากเมนูแบบเลื่อนลง คลิกที่ "Checkbox" (กล่องเช็ค) จากเมนูแบบเลื่อนลง และคลิกอีกครั้งที่เซลล์ที่ต้องการสร้างกล่องเช็ค |