GROUP BY

สวัสดีครับทุกท่าน ผมห่างหายการเขียนเรื่อง Access ไปนานพอควร วันนี้เลยถือโอกาสมาเขียนต่อครับ โดยบทความนี้จะมาพูดถึงการใช้ GROUP BY ครับ

โครงสร้างการใช้ GROUP BY

SELECT ชื่อ Column(s)
FROM ชื่อ Table
WHERE เงื่อนไขต่างๆ
GROUP BY ชื่อ Column(s)

โดยคำสั่ง Group By นั้นเราจะใช้ในกรณีที่มีการใช้ฟังก์ชั่นการรวม(aggregate function) เช่น sum, count, max, min average และอื่นๆครับ โดยเมื่อเราใช้ฟีงก์ชั่นพวกนี้แล้ว เราจำเป็นต้องใส่ฟังก์ชั่น GROUP BY แล้วตามด้วยชื่อ column ทั้งหมดที่เราเรียกดูครับ เรามาดูตัวอย่างเข้าใจยิ่งขึ้นกันครับ


ตัวอย่าง เราจะมีตาราง Sales History ประวัติการซื้อของลูกค้าแต่ละคนดังนี้ครับ

โดยตัวอย่างแรกเราอยากได้ผลรวมยอดซื้อของลูกค้าแต่ละคนครับ เราจึงเขียน SQL โดยดึงรหัสลูกค้า และใช้ฟังก์ชัน SUM ยอดซื้อ และในส่วนสุดท้ายเราจะต้องเพิ่ม GROUP BY รหัสลูกค้า ต่อท้ายด้วยดังนี้ครับ

พอรันแล้วก็จะได้ผลลัพธ์ตามที่ต้องการดังนี้ครับ

มาดูอีกตัวอย่างกันครับ โดยเราอยากได้ผลรวมยอดซื้อโดยแบ่งตามรายลูกค้าและวันที่ซื้อครับ เราจึงใส่รหัสลูกค้า, วันที่ซื้อ และ SUM ยอดซื้อครับ และเช่นเดิมต้องใส่ GROUP BY ให้กับทุก column ที่แสดงนั่นก็คือ GROUP BY รหัสลูกค้าและวันที่ดังนี้ครับ

พอรันแล้วก็จะได้ผลลัพธ์ตามที่ต้องการดังนี้ครับ

หากเราใช้ฟังก์ชั่นการรวม(aggregate function) แต่ไม่มี column ใดๆที่นำมาแสดง เราก็ไม่ต้องใส่ GROUP BY เช่นผลรวมยอดซื้อทุกรายการของลูกค้าทุกคน เราจึงเขียนได้ดังนี้ครับ

แล้วจะได้ผลลัพธ์ตามที่ต้องการโดยไม่ต้องใช้ GROUP BY ครับ

จบเรียบร้อยครับกับเรื่อง GROUP BY ในส่วนนี้เป็นคำสั่งบังคับหากเรามีใช้ฟังก์ชั่นการรวม(aggregate function) ครับ ลองฝึกเขียนลองใช้งานกันดูนะครับ หากมีคำถามหรือข้อสงสัยในส่วนไหน สามารถพูดคุยกันได้ที่เพจ Ping2Share นะครับ แล้วพบกันใหม่ในบทความถัดไปครับ สวัสดีครับ

No Comments

Leave a Comment