แชร์ผ่าน


ROWNUMBER

นําไปใช้กับ: คอลัมน์จากการคํานวณตารางจากการคํานวณหน่วยวัดการคํานวณวิชวล

แสดงการจัดอันดับที่ไม่ซ้ํากันสําหรับบริบทปัจจุบันภายในพาร์ติชันที่ระบุ โดยเรียงลําดับตามลําดับที่ระบุ ถ้าหาค่าตรงกันไม่พบ rownumber จะเป็นค่าว่าง

ไวยากรณ์

ROWNUMBER ( [<relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )

พารามิเตอร์

เงื่อนไข คำนิยาม
relation (ไม่บังคับ) นิพจน์ตารางที่ส่งกลับแถวผลลัพธ์
ถ้าระบุ คอลัมน์ทั้งหมดใน orderBy และ partitionBy ต้องมาจากคอลัมน์นั้น
ถ้าเว้นไว้: ต้องมีการระบุ
- orderBy อย่างชัดเจน
- คอลัมน์ orderBy และ partitionBy ทั้งหมดจะต้องผ่านคุณสมบัติครบถ้วนและมาจากตารางเดียว
- ค่าเริ่มต้นคือ ALLSELECTED() ของคอลัมน์ทั้งหมดใน orderBy และ partitionBy
axis (ไม่บังคับ) แกนในรูปร่างวิชวล พร้อมใช้งานในการคํานวณวิชวลเท่านั้น และแทนที่ relation
orderBy (ไม่บังคับ) คําสั่ง ORDERBY() ที่มีคอลัมน์ที่กําหนดวิธีการเรียงลําดับแต่ละพาร์ติชัน
ถ้าเว้นไว้: ต้องมีการระบุ
- relation อย่างชัดเจน
- ค่าเริ่มต้นการเรียงลําดับตามทุกคอลัมน์ใน relation ซึ่งยังไม่ได้ระบุใน partitionBy
blanks (ไม่บังคับ) ค่าจาระเหยที่กําหนดวิธีการจัดการค่าว่างเมื่อเรียงลําดับ relation หรือ axis
ค่าที่สนับสนุนคือ:
  • DEFAULT (ค่าเริ่มต้น) ซึ่งลักษณะการทํางานสําหรับค่าตัวเลขจะเป็นค่าว่างที่ถูกเรียงลําดับระหว่างค่าศูนย์และค่าลบ ลักษณะการทํางานสําหรับสตริงเป็นค่าว่างจะถูกเรียงลําดับก่อนสตริงทั้งหมด รวมถึงสตริงที่ว่างเปล่า
  • FIRSTช่องว่างจะถูกเรียงลําดับในตอนแรกเสมอ โดยไม่คํานึงถึงการเรียงลําดับจากน้อยไปหามากหรือจากมากไปหาน้อย
  • LASTช่องว่างจะถูกเรียงลําดับที่ส่วนท้ายเสมอ โดยไม่คํานึงถึงการเรียงลําดับจากน้อยไปหามากหรือจากมากไปหาน้อย
หมายเหตุ เมื่อพารามิเตอร์ และช่องว่างในฟังก์ชัน () บนนิพจน์แต่ละนิพจน์มีการระบุไว้ นิพจน์ orderBy แต่ละรายการจะมีความสําคัญสําหรับนิพจน์ orderBy ที่เกี่ยวข้องและนิพจน์ orderBy โดยไม่ต้องระบุ จะเป็นไปตามพารามิเตอร์ ในฟังก์ชันหลัก
partitionBy (ไม่บังคับ) คําสั่ง () ที่มีคอลัมน์ที่กําหนดวิธีการแบ่งพาร์ติชัน ถ้าเว้นไว้ relation จะถือว่าเป็นพาร์ติชันเดียว
matchBy (ไม่บังคับ) ส่วนคําสั่ง () ที่มีคอลัมน์ที่กําหนดวิธีการจับคู่ข้อมูลและระบุแถวปัจจุบัน
reset (ไม่บังคับ) พร้อมใช้งานในการคํานวณวิชวลเท่านั้น ระบุว่าการคํานวณรีเซ็ตหรือไม่ และระดับใดของลําดับชั้นคอลัมน์ของรูปร่างวิชวล ค่าที่ยอมรับคือ: การอ้างอิงเขตข้อมูลไปยังคอลัมน์ในรูปร่างวิชวลปัจจุบัน NONE (ค่าเริ่มต้น) LOWESTPARENTHIGHESTPARENTหรือจํานวนเต็ม ลักษณะการทํางานขึ้นอยู่กับเครื่องหมายจํานวนเต็ม:
- ถ้าศูนย์หรือเว้นไว้ การคํานวณจะไม่รีเซ็ต เทียบเท่ากับ NONE
- ถ้าเป็นค่าบวก จํานวนเต็มจะระบุคอลัมน์ที่เริ่มต้นจากสูงสุด โดยไม่ขึ้นอยู่กับเกรน HIGHESTPARENT เทียบเท่ากับ 1
- ถ้าเป็นค่าลบ จํานวนเต็มจะระบุคอลัมน์ที่เริ่มต้นจากต่ําสุด ซึ่งสัมพันธ์กับเกรนปัจจุบัน LOWESTPARENT เทียบเท่ากับ -1

ค่าผลลัพธ์

หมายเลขแถวสําหรับบริบทปัจจุบัน

หมายเหตุ

แต่ละ orderByคอลัมน์ partitionByและ matchBy ต้องมีค่าภายนอกที่สอดคล้องกันเพื่อช่วยกําหนดแถวปัจจุบันที่จะดําเนินการ ด้วยลักษณะการทํางานต่อไปนี้:

  • ถ้ามีหนึ่งคอลัมน์ภายนอกที่สอดคล้องกัน ค่านั้นจะถูกใช้
  • ถ้าไม่มีคอลัมน์ภายนอกที่สอดคล้องกัน จะเป็น:
    • ROWNUMBER จะกําหนด orderByทั้งหมด partitionByและ matchBy คอลัมน์ที่ไม่มีคอลัมน์ภายนอกที่สอดคล้องกัน
    • สําหรับการรวมค่าที่มีอยู่สําหรับคอลัมน์เหล่านี้ในบริบทหลัก ROWNUMBERROWNUMBER จะถูกประเมินและแถวจะถูกส่งกลับ
    • ผลลัพธ์สุดท้าย ROWNUMBERคือการรวมแถวเหล่านี้
  • ถ้ามีคอลัมน์ภายนอกที่สอดคล้องกันมากกว่าหนึ่งคอลัมน์ ข้อผิดพลาดจะถูกส่งกลับ

ถ้า matchBy ปรากฏ ROWNUMBER จะพยายามใช้คอลัมน์ใน matchBy และ partitionBy เพื่อปฏิเสธแถวปัจจุบัน ถ้าคอลัมน์ที่ระบุภายใน orderBy และ partitionBy ไม่สามารถระบุทุกแถวใน relationที่ไม่ซ้ํากันได้ จะเป็น:

  • ROWNUMBER จะพยายามค้นหาจํานวนคอลัมน์เพิ่มเติมน้อยที่สุดที่จําเป็นในการระบุเฉพาะทุกแถว
  • หากพบคอลัมน์ดังกล่าว ROWNUMBER จะ
    • ลองค้นหาจํานวนคอลัมน์เพิ่มเติมน้อยที่สุดซึ่งจําเป็นต้องระบุเฉพาะทุกแถว
    • ผนวกคอลัมน์ใหม่เหล่านี้เข้ากับส่วนคําสั่ง orderBy โดยอัตโนมัติ
    • เรียงลําดับแต่ละพาร์ติชันโดยใช้ชุดคอลัมน์ orderBy ใหม่นี้
  • ถ้าไม่พบคอลัมน์ดังกล่าวและฟังก์ชันตรวจพบความสัมพันธ์ในขณะทํางาน ข้อผิดพลาดจะถูกส่งกลับ

reset สามารถใช้ในการคํานวณวิชวลเท่านั้น และไม่สามารถใช้ร่วมกับ orderBy หรือ partitionByได้ ถ้ามี reset อยู่ สามารถระบุ axis ได้ แต่ไม่สามารถระบุ relation ได้

ตัวอย่างที่ 1 - คอลัมน์จากการคํานวณ

คิวรี DAX ต่อไปนี้:

EVALUATE
ADDCOLUMNS(
    'DimGeography',
    "UniqueRank",
    ROWNUMBER(
    	'DimGeography',
    	ORDERBY(
    		'DimGeography'[StateProvinceName], desc,
    		'DimGeography'[City], asc),
    	PARTITIONBY(
    		'DimGeography'[EnglishCountryRegionName])))
ORDER BY [EnglishCountryRegionName] asc, [StateProvinceName] desc, [City] asc

แสดงตารางที่มีการจัดอันดับแต่ละภูมิศาสตร์ด้วย EnglishCountryRegionName เดียวกันโดย StateProvinceName และ City

ตัวอย่างที่ 2 - การคํานวณวิชวล

การคํานวณวิชวลต่อไปนี้ DAX คิวรี:

SalesRankWithinYear = ROWNUMBER(ORDERBY([SalesAmount], DESC), PARTITIONBY([CalendarYear]))

SalesRankAllHistory = ROWNUMBER(ORDERBY([SalesAmount], DESC))

สร้างสองคอลัมน์ที่มีการจัดอันดับที่ไม่ซ้ํากันในแต่ละเดือนตามยอดขายทั้งหมด ทั้งภายในแต่ละปี และประวัติทั้งหมด

สกรีนช็อตด้านล่างแสดงเมทริกซ์วิชวลและนิพจน์การคํานวณวิชวลแรก:

การคํานวณวิชวล

INDEX ORDERBY PARTITIONBY WINDOW RANK