ยศ
นําไปใช้กับ: การคํานวณคอลัมน์จากการคํานวณ ตารางจากการคํานวณ หน่วยวัดภาพการคํานวณ
แสดงการจัดอันดับสําหรับบริบทปัจจุบันภายในพาร์ติชันที่ระบุ โดยเรียงลําดับตามลําดับที่ระบุ ถ้าหาค่าตรงกันไม่พบ อันดับจะเป็นค่าว่าง
ไวยากรณ์
RANK ( [<ties>][, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
พารามิเตอร์
เงื่อนไข | คำนิยาม |
---|---|
ties | (ไม่บังคับ) กําหนดวิธีการจัดการการจัดอันดับเมื่อมีการผูกแถวตั้งแต่สองแถวขึ้นไป ถ้าระบุ ค่าที่สนับสนุนคือ DENSE หรือ SKIP อย่างใดอย่างหนึ่ง ถ้าเว้นไว้: - ค่าเริ่มต้นคือข้าม |
ความสัมพันธ์ | (ไม่บังคับ) นิพจน์ตารางที่ส่งกลับแถวผลลัพธ์ ถ้าระบุ คอลัมน์ <ทั้งหมดใน orderBy> และ <partitionBy> ต้องมาจากคอลัมน์นั้น ถ้าเว้นไว้: - <orderBy> ต้องระบุ อย่างชัดเจน- คอลัมน์ orderBy> และ <partitionBy> ทั้งหมด<จะต้องมีคุณสมบัติครบถ้วนและมาจากตารางเดียว - ค่าเริ่มต้นเป็น ALLSELECTED() ของคอลัมน์<ทั้งหมดใน orderBy> และ <partitionBy> |
แกน | (ไม่บังคับ) แกนในรูปร่างวิชวล พร้อมใช้งานในการคํานวณวิชวลเท่านั้น และแทนที่<ความสัมพันธ์> |
orderBy | (ไม่บังคับ) คําสั่ง ORDERBY() ที่มีคอลัมน์ที่กําหนดวิธีการเรียงลําดับแต่ละพาร์ติชัน ถ้าเว้นไว้: - <ต้องระบุความสัมพันธ์> อย่างชัดเจน - ค่าเริ่มต้นในการเรียงลําดับตามทุกคอลัมน์ที่สัมพันธ์กับ<>ไม่ได้ระบุไว้ใน <partitionBy> |
ช่อง ว่าง | (ไม่บังคับ) ค่าจาระเลี่ยงที่กําหนดวิธีการจัดการค่าว่างเมื่อเรียงลําดับ ค่าที่ได้รับการสนับสนุนคือ:
หมายเหตุ เมื่อ<>มีการระบุ<>พารามิเตอร์และช่องว่างในฟังก์ชัน ORDERBY() ของแต่ละนิพจน์ช่องว่างบนนิพจน์ orderBy แต่ละรายการจะมีความสําคัญสําหรับนิพจน์ orderBy ที่เกี่ยวข้องและนิพจน์ orderBy โดยไม่มี<ช่องว่าง>ที่ระบุจะเปลี่ยน<เป็นพารามิเตอร์ที่ว่างเปล่า>บนฟังก์ชันหน้าต่างหลัก |
partitionBy | (ไม่บังคับ) คําสั่ง PARTITIONBY() ที่มีคอลัมน์ที่กําหนดวิธีการ<แบ่งพาร์ติชันความสัมพันธ์> ถ้ามีการเว้นไว้ <ความสัมพันธ์> จะถือว่าเป็นพาร์ติชันเดียว |
matchBy | (ไม่บังคับ) ส่วนคําสั่ง MATCHBY() ที่มีคอลัมน์ที่กําหนดวิธีการจับคู่ข้อมูลและระบุแถวปัจจุบัน |
รี เซ็ต | (ไม่บังคับ) พร้อมใช้งานในการคํานวณวิชวลเท่านั้น ระบุว่าการคํานวณรีเซ็ตหรือไม่ และระดับใดของลําดับชั้นคอลัมน์ของรูปร่างวิชวล ค่าที่ยอมรับคือ: NONE, LOWESTPARENT, HIGHESTPARENT หรือจํานวนเต็ม ลักษณะการทํางานจะขึ้นอยู่กับเครื่องหมายจํานวนเต็ม: - ถ้าเป็นศูนย์หรือเว้นไว้ การคํานวณจะไม่รีเซ็ต เทียบเท่ากับ NONE - ถ้าเป็นค่าบวก จํานวนเต็มจะระบุคอลัมน์ที่เริ่มต้นจากสูงสุด เป็นอิสระจากเกรน HIGHESTPARENT เทียบเท่ากับ 1 - ถ้าเป็นค่าลบ จํานวนเต็มจะระบุคอลัมน์โดยเริ่มต้นจากต่ําสุด ซึ่งสัมพันธ์กับเกรนปัจจุบัน LOWESTPARENT เทียบเท่ากับ -1 |
ค่าที่ส่งกลับ
หมายเลขอันดับสําหรับบริบทปัจจุบัน
หมายเหตุ
แต่ละ <orderBy>, <partitionBy> และ <matchBy> ต้องมีค่าภายนอกที่สอดคล้องกันเพื่อช่วยกําหนดแถวปัจจุบันที่จะทํางาน โดยมีลักษณะการทํางานต่อไปนี้:
- ถ้ามีหนึ่งคอลัมน์ภายนอกที่สอดคล้องกัน ค่านั้นจะถูกใช้
- ถ้าไม่มีคอลัมน์ภายนอกที่สอดคล้องกัน จะเป็น:
- RANK จะกําหนด orderBy>, <partitionBy> และ <matchBy> คอลัมน์ทั้งหมด<ที่ไม่มีคอลัมน์ภายนอกที่สอดคล้องกัน
- สําหรับการรวมค่าที่มีอยู่สําหรับคอลัมน์เหล่านี้ในบริบทหลัก RANK จะมีการประเมิน RANK และแถวจะถูกส่งกลับ
- ผลลัพธ์สุดท้ายของ RANK คือหมายเลขอันดับ
ถ้า <matchBy> ปรากฏอยู่ RANK จะพยายามใช้คอลัมน์ใน <matchBy> และ <partitionBy> เพื่อปฏิเสธแถวปัจจุบัน
หากคอลัมน์ที่ระบุภายใน <orderBy> และ <partitionBy> ไม่สามารถระบุเฉพาะทุกแถวที่มีความ <สัมพันธ์กับ>กันได้ อย่างน้อยสองแถวอาจมีการจัดอันดับเดียวกันและการจัดอันดับจะถูกกําหนดโดยพารามิเตอร์ความสัมพันธ์
RANK ส่งกลับค่าว่างสําหรับแถวทั้งหมด ขอแนะนําให้คุณทดสอบนิพจน์ของคุณอย่างละเอียด
อันดับจะไม่เปรียบเทียบ RANKX เป็น SUM เปรียบเทียบกับ SUMX
<Reset> สามารถใช้ในการคํานวณวิชวลเท่านั้น และไม่สามารถใช้ร่วมกับ <orderBy> หรือ <partitionBy> ได้ ถ้า <รีเซ็ต> ปรากฏ <อยู่ สามารถระบุแกน> ได้ แต่ <ไม่สามารถระบุความสัมพันธ์> ได้
ตัวอย่างที่ 1 - คอลัมน์จากการคํานวณ
คิวรี DAX ต่อไปนี้:
EVALUATE
ADDCOLUMNS(
'DimGeography',
"Rank",
RANK(
DENSE,
'DimGeography',
ORDERBY(
'DimGeography'[StateProvinceName], desc,
'DimGeography'[City], asc),
LAST,
PARTITIONBY(
'DimGeography'[EnglishCountryRegionName])))
ORDER BY [EnglishCountryRegionName] asc, [StateProvinceName] desc, [City] asc
แสดงตารางที่จัดอันดับแต่ละภูมิศาสตร์ด้วย EnglishCountryRegionName เดียวกันตาม StateProvinceName และ City ค่าคอลัมน์ orderBy> ที่ว่างเปล่า<จะเรียงลําดับที่ส่วนท้าย
ตัวอย่างที่ 2 - การคํานวณวิชวล
คิวรี DAX การคํานวณวิชวลต่อไปนี้:
SalesRankWithinYear = RANK(DENSE, ORDERBY([SalesAmount], DESC), PARTITIONBY([CalendarYear]))
SalesRankAllHistory = RANK(DENSE, ORDERBY([SalesAmount], DESC))
สร้างสองคอลัมน์ที่จัดอันดับแต่ละเดือนตามยอดขายทั้งหมด ทั้งภายในแต่ละปี และประวัติทั้งหมด
สกรีนช็อตด้านล่างแสดงเมทริกซ์วิชวลและนิพจน์การคํานวณวิชวลแรก: