Table.Group
จัดกลุ่มแถวในตารางที่มีคีย์เดียวกัน
Syntax
Table.Group(
table as table,
key as any,
aggregatedColumns as list,
optional groupKind as GroupKind.Type,
optional comparer as function
) as table
Remarks
จัดกลุ่มแถว table
ตามคอลัมน์หลักที่กำหนดโดย key
key
สามารถเป็นชื่อคอลัมน์เดียวหรือรายการชื่อคอลัมน์ได้ สำหรับแต่ละกลุ่ม จะมีการสร้างระเบียนที่มีคอลัมน์หลัก (และค่า) พร้อมกับคอลัมน์รวมที่ระบุโดย aggregatedColumns
. นอกจากนี้ยังสามารถระบุ groupKind
และ comparer
ได้อีกด้วย
ถ้ามีการจัดเรียงข้อมูลตามคอลัมน์หลักแล้ว จะสามารถระบุ groupKind
ของ GroupKind.Local ได้ การดำเนินการนี้อาจเป็นการปรับปรุงประสิทธิภาพของการจัดกลุ่มในบางกรณี เนื่องจากแถวทั้งหมดที่มีชุดของค่าคีย์ที่กำหนดไว้จะถูกสันนิษฐานว่าอยู่ติดกัน
เมื่อส่งผ่านการ comparer
โปรดทราบว่าถ้าถือว่าคีย์ที่แตกต่างเท่ากัน แถวอาจอยู่ในกลุ่มที่มีคีย์ที่แตกต่างจากของตนเอง
ฟังกืชันนี้ไม่รับประกันการจัดลำดับของแถวที่จะส่งกลับ
Examples
Example #1
จัดกลุ่มตารางโดยเพิ่มคอลัมน์รวม [total] ซึ่งมียอดรวมของราคา ("each List.Sum([price])")
Table.Group(
Table.FromRecords({
[CustomerID = 1, price = 20],
[CustomerID = 2, price = 10],
[CustomerID = 2, price = 20],
[CustomerID = 1, price = 10],
[CustomerID = 3, price = 20],
[CustomerID = 3, price = 5]
}),
"CustomerID",
{"total", each List.Sum([price])}
)
Result:
Table.FromRecords(
{
[CustomerID = 1, total = 30],
[CustomerID = 2, total = 30],
[CustomerID = 3, total = 25]
},
{"CustomerID", "total"}
)
Category
Table.Transformation