GROUPBY
นําไปใช้กับ: คอลัมน์จากการคํานวณตารางจากการคํานวณหน่วยวัดการคํานวณวิชวล
โน้ต
ฟังก์ชันนี้ไม่ได้รับการสนับสนุนสําหรับการใช้งานในการคํานวณวิชวล เนื่องจากอาจแสดงผลลัพธ์ที่ไม่มีความหมาย
ฟังก์ชัน GROUPBY จะคล้ายกับฟังก์ชัน SUMMARIZE อย่างไรก็ตาม GROUPBY จะไม่ทํา CALCULATE โดยนัยสําหรับคอลัมน์ส่วนขยายใดก็ตามที่เพิ่มเข้าไป GROUPBY อนุญาตให้ใช้ฟังก์ชันใหม่ CURRENTGROUPเพื่อใช้ภายในฟังก์ชันการรวมในคอลัมน์ส่วนขยายที่เพิ่มเข้ามา GROUPBY ถูกใช้เพื่อดําเนินการรวมหลายรายการในการสแกนตารางเดียว
วากยสัมพันธ์
GROUPBY (<table> [, <groupBy_columnName> [, <groupBy_columnName> [, …]]] [, <name>, <expression> [, <name>, <expression> [, …]]])
พารามิเตอร์
เทอม | นิยาม |
---|---|
table |
นิพจน์ DAX ใด ๆ ที่แสดงตารางของข้อมูล |
groupBy_columnName |
ชื่อของคอลัมน์ที่มีอยู่ในตาราง (หรือในตารางที่เกี่ยวข้อง) ซึ่งจะมีการจัดกลุ่มข้อมูล พารามิเตอร์นี้ไม่สามารถเป็นนิพจน์ได้ |
name |
ชื่อที่กําหนดให้กับคอลัมน์ใหม่ที่จะถูกเพิ่มลงในรายการของคอลัมน์ GroupBy ให้ล้อมรอบด้วยเครื่องหมายอัญประกาศคู่ |
expression |
หนึ่งในฟังก์ชันการรวม X ที่มีอาร์กิวเมนต์แรกถูก CURRENTGROUP() ดูหัวข้อ ด้วย CURRENTGROUP ด้านล่างสําหรับรายการทั้งหมดของฟังก์ชันการรวม X ที่ได้รับการสนับสนุน |
ค่าผลลัพธ์
ตารางที่มีคอลัมน์ที่เลือกสําหรับอาร์กิวเมนต์ groupBy_columnName และคอลัมน์ส่วนขยายที่กําหนดโดยอาร์กิวเมนต์ชื่อ
หมาย เหตุ
ฟังก์ชัน GROUPBY ทําดังต่อไปนี้:
เริ่มต้นด้วยตารางที่ระบุ (และตารางที่เกี่ยวข้องทั้งหมดในทิศทาง "ไปหนึ่ง")
สร้างการจัดกลุ่มโดยใช้คอลัมน์ GroupBy ทั้งหมด (ซึ่งจําเป็นต้องมีอยู่ในตารางจากขั้นตอนที่ 1)
แต่ละกลุ่มคือหนึ่งแถวในผลลัพธ์ แต่แสดงถึงชุดของแถวในตารางต้นฉบับ
สําหรับแต่ละกลุ่ม ประเมินคอลัมน์ส่วนขยายที่เพิ่มเข้ามา ซึ่งแตกต่างจากฟังก์ชัน SUMMARIZE จะไม่มีการดําเนินการ CALCULATE โดยนัย และจะไม่วางกลุ่มลงในบริบทตัวกรอง
แต่ละคอลัมน์ที่คุณกําหนดชื่อต้องมีนิพจน์ที่สอดคล้องกัน มิฉะนั้น จะส่งกลับข้อผิดพลาด อาร์กิวเมนต์แรก "ชื่อ" จะกําหนดชื่อของคอลัมน์ในผลลัพธ์ อาร์กิวเมนต์ที่สอง นิพจน์ จะกําหนดการคํานวณที่ดําเนินการเพื่อให้ได้ค่าสําหรับแต่ละแถวในคอลัมน์นั้น
groupBy_columnName
ต้องอยู่ในตาราง หรือ ในตารางที่เกี่ยวข้องแต่ละชื่อต้องอยู่ในเครื่องหมายอัญประกาศคู่
ฟังก์ชันจะจัดกลุ่มชุดของแถวที่เลือกเป็นชุดของแถวสรุปตามค่าของคอลัมน์ groupBy_columnName อย่างน้อยหนึ่งรายการ หนึ่งแถวจะถูกส่งกลับสําหรับแต่ละกลุ่ม
GROUPBY จะใช้เพื่อดําเนินการรวมผลลัพธ์ระดับกลางจากนิพจน์ตาราง DAX เป็นหลัก สําหรับการรวมที่มีประสิทธิภาพในตารางทางกายภาพในแบบจําลอง ให้พิจารณาการใช้ฟังก์ชัน SUMMARIZECOLUMNS หรือ SUMMARIZE
ฟังก์ชันนี้ไม่ได้รับการสนับสนุนสําหรับการใช้งานในโหมด DirectQuery เมื่อใช้ในคอลัมน์จากการคํานวณหรือกฎการรักษาความปลอดภัยระดับแถว (RLS)
ด้วย CURRENTGROUP
CURRENTGROUP สามารถใช้ได้เฉพาะในนิพจน์ที่กําหนดคอลัมน์ส่วนขยายภายในฟังก์ชัน GROUPBY เท่านั้น มีผลให้ CURRENTGROUP ส่งกลับชุดของแถวจากอาร์กิวเมนต์ตารางของ GROUPBY ที่เป็นของแถวปัจจุบันของผลลัพธ์ GROUPBY ฟังก์ชัน CURRENTGROUP จะไม่มีอาร์กิวเมนต์และได้รับการสนับสนุนเป็นอาร์กิวเมนต์แรกสําหรับหนึ่งในฟังก์ชันการรวมต่อไปนี้: AVERAGEX, COUNTAX, COUNTX, GEOMEANX, MAXX, MINX, PRODUCTX, STDEVX.S, STDEVX.P, SUMX, VARX.S, VARX.P
ตัวอย่าง
ตัวอย่างต่อไปนี้จะคํานวณยอดขายทั้งหมดที่จัดกลุ่มตามประเทศและหมวดหมู่ผลิตภัณฑ์ในตารางทางกายภาพก่อนโดยใช้ฟังก์ชัน SUMMARIZECOLUMNS จากนั้นใช้ฟังก์ชัน GROUPBY เพื่อสแกนผลลัพธ์ระดับกลางจากขั้นตอนแรกเพื่อค้นหายอดขายสูงสุดในแต่ละประเทศในหมวดหมู่ผลิตภัณฑ์
DEFINE
VAR SalesByCountryAndCategory =
SUMMARIZECOLUMNS(
Geography[Country],
Product[Category],
"Total Sales", SUMX(Sales, Sales[Price] * Sales[Qty])
)
EVALUATE
GROUPBY(
SalesByCountryAndCategory,
Geography[Country],
"Max Sales", MAXX(CURRENTGROUP(), [Total Sales])
)
เนื้อหาที่เกี่ยวข้อง
ฟังก์ชัน