
Groupby Node ใช้สำหรับจัดกลุ่มข้อมูลที่มีค่าเหมือนกันใน collective field ที่กำหนดเข้าด้วยกัน และทำการคำนวณเพื่อสรุปผลข้อมูล (Aggregation) ของแต่ละกลุ่ม เช่น การหาผลรวม การนับจำนวน หรือการหาค่าสูงสุด/ต่ำสุด
ตัวอย่างการใช้งาน
- จัดกลุ่มข้อมูลยอดขายตาม ประเภทสินค้า เพื่อหา ผลรวมราคาสินค้า ของแต่ละประเภท
- จัดกลุ่มรายการธุรกรรมตาม รหัสลูกค้า เพื่อหา ยอดซื้อสูงสุด ของลูกค้าแต่ละราย

การทำงานของ Groupby Node
หลังจากที่ Groupby Node รับข้อมูลที่ส่งมาจาก Node ต้นทางแล้ว จะจัดกลุ่มข้อมูลและสรุปผลตามที่ผู้ใช้ตั้งค่า จากบันทึกค่าลงในฟิลด์ที่กำหนดไว้ แล้วส่งข้อมูลต่อไปยัง Node ถัดไป
องค์ประกอบของเงื่อนไข
การตั้งค่าภายใน GroupBy Node ประกอบด้วยองค์ประกอบหลัก 3 ส่วน ดังนี้
- Collective Field – ฟิลด์ข้อมูลที่ต้องการนำมาจัดกลุ่ม
- Group Fields – ฟิลด์ย่อยภายใน Collective Field ที่ต้องการใช้เป็นเกณฑ์ในการจัดกลุ่มข้อมูล (สามารถเลือกได้มากกว่า 1 ฟิลด์) ข้อมูลที่มีค่าเหมือนกันในฟิลด์เหล่านี้จะถูกจัดให้อยู่ในกลุ่มเดียวกัน
- Aggregation – ฟังก์ชันที่ใช้ในการคำนวณสรุปผลข้อมูลภายในกลุ่ม ประกอบด้วย 2 ส่วนย่อย:
- ฟังก์ชันการคำนวณ: เช่น
SUM,COUNT,MAX,MIN - ฟิลด์ที่ต้องการคำนวน: ฟิลด์ข้อมูลที่ต้องการนำมาคำนวณสรุปผล
- ฟังก์ชันการคำนวณ: เช่น
ขั้นตอนการใช้งาน
- เพิ่ม GroupBy Node ลงในพื้นที่สร้างกฎ (Rule Graph)
- เชื่อมต่อ Input จาก Node ต้นทางมายัง GroupBy Node
- ดับเบิลคลิกที่ GroupBy Node เพื่อตั้งค่าการจัดกลุ่มและการสรุปผลข้อมูล
- ตั้งค่า Collecive field , Group Fields และ Aggreation เมื่อตั้งค่าเสร็จสิ้น กดปุ่ม OK เพื่อบันทึกข้อมูล
- เชื่อมต่อ Output ของ GroupBy Node ไปยัง Node ถัดไปที่ต้องการนำข้อมูลไปใช้งานต่อ
วิธีการใช้งาน
ตัวอย่าง
จัดกลุ่มรายการซื้อตาม ประเภทสินค้า เพื่อหา ราคารวมของแต่ละประเภทสินค้า
Step 1: ดับเบิลคลิกที่ GroupBy Node เพื่อเข้าสู่หน้าการตั้งค่า เลือก เป็น Select Collective FieldOrders (BigTable )

Step 2: เลือกจัดกลุ่มด้วยฟิลด์ category เพื่อจัดกลุ่มตามประเภทของสินค้า

Step 3: เลือกคำนวณสรุปด้วยฟังก์ชัน SUM และเลือกฟิลด์ price เพื่อให้หาผลรวมของราคาสินค้าในแต่ละประเภทสินค้า

Step 4: กำหนดชื่อฟิลด์สำหรับเก็บผลลัพธ์ก่อนตรวจสอบความถูกต้อง และกด OK เพื่อยืนยันการตั้งค่า

Step 5: ทดสอบการทำงานของกฎด้วยฟังก์ชัน Testing Visual Graph ![]()

