GROUP BY จัดกลุ่มแถวที่มีค่าร่วมกัน เพื่อให้ฟังก์ชัน aggregate คำนวณแบบต่อกลุ่ม ส่วน HAVING กรองกลุ่มเหล่านั้น (เหมือน WHERE แต่ทำกับกลุ่ม/aggregate) เมื่อใช้ร่วมกัน ทั้งสองเป็นแกนหลักของการสรุปและวิเคราะห์ข้อมูลตามหมวดหมู่
GROUP BY — aggregate ต่อกลุ่ม
country, () user_count, (age) avg_age
users
country;
