ORDERBY ระบุ expression และทิศทางการเรียงลำดับ (ASC/DESC) สำหรับ window functions เพื่อกำหนดลำดับของแถวภายในกลุ่มที่แบ่งด้วย PARTITIONBY และทำงานร่วมกับ OFFSET/INDEX/WINDOW
=ORDERBY(<Expression>[, <Order>])
=ORDERBY(<Expression>[, <Order>])
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| Expression | expression | Yes | นิพจน์/คอลัมน์ที่ใช้จัดเรียง | |
| Order | text | Optional | ASC | ทิศทางการเรียง (ASC หรือ DESC) |
ใช้ ORDERBY กับ OFFSET เพื่อเลื่อนตำแหน่งตามลำดับที่กำหนด
ใช้ ORDERBY กับ INDEX เพื่อดึงตำแหน่งคงที่ตามลำดับ
แถวก่อนหน้า (แนวคิด) = OFFSET( -1, SUMMARIZECOLUMNS(Product[ProductKey], "Sales", [Total Sales]), ORDERBY([Sales], DESC) )=แถวก่อนหน้า (แนวคิด) =
OFFSET(
-1,
SUMMARIZECOLUMNS(Product[ProductKey], "Sales", [Total Sales]),
ORDERBY([Sales], DESC)
)
ได้ตารางที่เป็นแถวก่อนหน้าตามการเรียงยอดขายจากมากไปน้อย
อันดับ 1 (แนวคิด) = INDEX( 1, SUMMARIZECOLUMNS(Product[ProductKey], "Sales", [Total Sales]), ORDERBY([Sales], DESC) )=อันดับ 1 (แนวคิด) =
INDEX(
1,
SUMMARIZECOLUMNS(Product[ProductKey], "Sales", [Total Sales]),
ORDERBY([Sales], DESC)
)
ได้ตาราง 1 แถว (แถวอันดับ 1 ตามลำดับที่กำหนด)
ORDERBY หลายคีย์ (แนวคิด) = ORDERBY( Sales[OrderDate], ASC, Sales[SalesAmount], DESC )=ORDERBY หลายคีย์ (แนวคิด) =
ORDERBY(
Sales[OrderDate], ASC,
Sales[SalesAmount], DESC
)
กำหนดลำดับหลักเป็นวันที่ แล้วรองเป็นยอดขาย
โดยหลัก ORDERBY ใช้ภายใน window functions (เช่น OFFSET/INDEX/WINDOW) เพื่อบอกวิธีเรียงลำดับ ไม่ได้ใช้เป็น measure เดี่ยวเพื่อคืนผลลัพธ์เอง
เพิ่มคีย์รองใน ORDERBY และ/หรือใช้ MATCHBY เพื่อระบุแถวให้ชัดเจนขึ้น
ORDERBY ใช้ภายในกลุ่ม Window Functions (เช่น OFFSET, INDEX, WINDOW) เพื่อกำหนด “ลำดับการเรียง” ของแถวภายในกลุ่ม (partition) โดยระบุ expression ที่ใช้เรียงและทิศทาง (ASC/DESC) ได้หลายคีย์
แนวคิดคือ: PARTITIONBY แบ่งกลุ่ม, ORDERBY เรียงลำดับในกลุ่ม, และ window functions จะใช้ลำดับนี้ในการเลือก/เลื่อนตำแหน่งแถว