ส่วนคำสั่ง GROUP BY

รวมระเบียนที่มีค่าเหมือนกันในรายการเขตข้อมูลที่ระบุเข้าด้วยกันเป็นระเบียนเดียว ค่าสรุปจะถูกสร้างขึ้นสำหรับแต่ละระเบียนถ้าคุณใส่ฟังก์ชันการรวม SQL ไว้ด้วย เช่น Sum หรือ Count ในคำสั่ง SELECT

ไวยากรณ์

SELECT fieldlist
FROM table
WHERE criteria
[GROUP BY groupfieldlist]

คำสั่ง SELECT ที่มีส่วนคำสั่ง GROUP BY มีส่วนต่างๆ ดังนี้

ส่วน คำอธิบาย
fieldlist ชื่อของเขตข้อมูลเดียวหรือหลายเขตที่จะถูกเรียกใช้พร้อมด้วย นามแฝง (นามแฝง (SQL): ชื่อทดแทนของตารางหรือเขตข้อมูลในนิพจน์ ชื่อเหล่านี้มักจะถูกใช้เพื่อทำให้ชื่อตารางหรือชื่อเขตข้อมูลสั้นลงเพื่อใช้อ้างอิงในรหัสในภายหลัง หรือเพื่อป้องกันการอ้างอิงอย่างคลุมเครือ หรือเพื่อใช้เป็นชื่อที่เข้าใจง่ายขึ้นในผลลัพธ์ที่ได้จากแบบสอบถาม)ของชื่อเขตข้อมูลใดๆ ฟังก์ชันการรวมของ SQL เพรดิเคตการเลือก (ALL, DISTINCT, DISTINCTROW หรือ TOP ) หรือตัวเลือกคำสั่ง SELECT อื่นๆ
table ชื่อของตารางที่เรียกใช้ระเบียน
criteria เกณฑ์ในการเลือก ถ้าคำสั่งประกอบด้วยส่วนคำสั่ง WHERE กลไกจัดการฐานข้อมูลของ Microsoft Access จะจัดกลุ่มค่าหลังจากนำเงื่อนไข WHERE ไปใช้กับระเบียนแล้ว
groupfieldlist ชื่อของเขตข้อมูลสูงสุดถึง 10 เขตข้อมูลที่ใช้ในการจัดกลุ่มระเบียน โดยลำดับของชื่อเขตข้อมูลใน groupfieldlist จะกำหนดระดับการจัดกลุ่มจากระดับสูงสุดไปยังระดับต่ำสุดของการจัดกลุ่ม
ข้อสังเกต

GROUP BY จะมีหรือไม่ก็ได้

ค่าสรุปจะไม่ถูกละเว้นถ้าไม่มีฟังก์ชันการรวม SQL อยู่ในคำสั่ง SELECT

ค่า Null (Null: ค่าที่คุณสามารถป้อนลงในเขตข้อมูลหรือใช้ในนิพจน์หรือแบบสอบถามเพื่อบ่งชี้ถึงข้อมูลที่หายไปหรือข้อมูลที่ไม่รู้จัก ใน Visual Basic คำสำคัญ Null จะหมายถึงค่า Null โดยบางเขตข้อมูล เช่น เขตข้อมูลคีย์หลักจะไม่สามารถมีค่า Null ได้) ในเขตข้อมูลของ GROUP BY จะถูกจัดกลุ่ม และไม่ถูกละเว้น อย่างไรก็ตาม ค่า Null จะไม่ถูกนำมาประเมินในฟังก์ชันการรวม SQL ใดๆ

ให้ใช้ส่วนคำสั่ง WHERE เมื่อต้องการแยกแถวที่คุณไม่ต้องการจัดกลุ่ม และให้ใช้ส่วนคำสั่ง HAVING เมื่อต้องการกรองระเบียนหลังจากที่ถูกจัดกลุ่มแล้ว

เว้นแต่ว่าจะมีชนิดข้อมูล Memo (ชนิดของข้อมูล Memo:  ชนิดของข้อมูล Memo นี้เป็นชนิดของข้อมูลของเขตข้อมูลในฐานข้อมูล Microsoft Access ซึ่งเขตข้อมูล Memo สามารถมีอักขระได้ถึง 65,535 อักขระ) หรือ OLE Object (ชนิดของข้อมูลของ OLE Object : ชนิดของข้อมูลของเขตข้อมูลที่คุณใช้กับวัตถุที่สร้างขึ้นในโปรแกรมประยุกต์อื่น ซึ่งสามารถถูกเชื่อมโยง หรือถูกฝังตัว (ถูกแทรก) ในฐานข้อมูล Access ได้) เขตข้อมูลหนึ่งในรายการเขตข้อมูล GROUP BY สามารถอ้างถึงเขตข้อมูลใดๆ ในตารางใดๆ ที่แสดงในส่วนคำสั่ง FROM ได้ แม้ว่าเขตข้อมูลนั้นจะไม่รวมอยู่ในคำสั่ง SELECT ก็ตาม โดยมีเงื่อนไขว่าคำสั่ง SELECT ต้องมีฟังก์ชันการรวมของ SQL อย่างน้อยหนึ่งฟังก์ชัน กลไกจัดการฐานข้อมูล Microsoft Access ไม่สามารถจัดกลุ่มเขตข้อมูล Memo หรือ OLE Object ได้

เขตข้อมูลทั้งหมดในรายการเขตข้อมูลของ SELECT จะต้องถูกใส่ไว้ในส่วนคำสั่ง GROUP BY หรือใส่ไว้เป็นอาร์กิวเมนต์ของฟังก์ชันการรวม SQL อย่างใดอย่างหนึ่ง

 
 
นำไปใช้กับ:
Access 2007