RANK
Berlaku untuk: kolom terhitungTabel terhitung
Ukur
Perhitungan visual
Mengembalikan peringkat untuk konteks saat ini dalam partisi yang ditentukan, diurutkan menurut urutan yang ditentukan. Jika kecocokan tidak dapat ditemukan, maka peringkat kosong.
Sintaksis
RANK ( [<ties>][, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
Parameter
Istilah | Definisi |
---|---|
ties |
(Opsional) Menentukan cara menangani peringkat saat dua baris atau lebih terikat.
Jika ditentukan, nilai yang didukung adalah DENSE, atau SKIP. Jika dihilangkan: - Default ke SKIP |
relation |
(Opsional) Ekspresi tabel tempat baris output dikembalikan.
Jika ditentukan, semua kolom di orderBy dan partitionBy harus berasal darinya.
Jika dihilangkan: - orderBy harus ditentukan secara eksplisit.- Semua kolom orderBy dan partitionBy harus sepenuhnya memenuhi syarat dan berasal dari satu tabel.
- Default ke ALLSELECTED() dari semua kolom di orderBy dan partitionBy . |
axis |
(Opsional) Sumbu dalam bentuk visual. Hanya tersedia dalam perhitungan visual, dan menggantikan relation . |
orderBy |
(Opsional) Klausa ORDERBY() yang berisi kolom yang menentukan bagaimana setiap partisi diurutkan.
Jika dihilangkan: - relation harus ditentukan secara eksplisit.
- Default untuk mengurutkan menurut setiap kolom di relation yang belum ditentukan dalam partitionBy . |
blanks |
(Opsional) Enumerasi yang menentukan cara menangani nilai kosong saat mengurutkan relation atau axis .
Nilai yang didukung adalah:
|
partitionBy |
(Opsional) Klausa relation diperlakukan sebagai partisi tunggal. |
matchBy |
(Opsional) Klausa |
reset |
(Opsional) Hanya tersedia dalam perhitungan visual. Menunjukkan apakah perhitungan diatur ulang, dan pada tingkat hierarki kolom bentuk visual mana. Nilai yang diterima adalah: referensi bidang ke kolom dalam bentuk visual saat ini, NONE (default), LOWESTPARENT , HIGHESTPARENT , atau bilangan bulat. Perilaku tergantung pada tanda bilangan bulat: - Jika nol atau dihilangkan, perhitungan tidak direset. Setara dengan NONE .
- Jika positif, bilangan bulat mengidentifikasi kolom mulai dari biji-bijian tertinggi dan independen. HIGHESTPARENT setara dengan 1.
- Jika negatif, bilangan bulat mengidentifikasi kolom mulai dari terendah, relatif terhadap butir saat ini. LOWESTPARENT setara dengan -1. |
Mengembalikan nilai
Nomor peringkat untuk konteks saat ini.
Komentar
Setiap kolom
orderBy
,partitionBy
, danmatchBy
harus memiliki nilai luar yang sesuai untuk membantu menentukan baris saat ini untuk dioperasikan, dengan perilaku berikut:- Jika ada tepat satu kolom luar yang sesuai, nilainya akan digunakan.
- Jika tidak ada kolom luar yang sesuai, maka:
-
RANK pertama-tama akan menentukan semua kolom
orderBy
,partitionBy
, danmatchBy
yang tidak memiliki kolom luar yang sesuai. - Untuk setiap kombinasi nilai yang ada untuk kolom ini dalam konteks induk RANK, RANK dievaluasi dan baris dikembalikan.
- output akhir RANKadalah angka peringkat.
-
RANK pertama-tama akan menentukan semua kolom
Jika
matchBy
ada, RANK akan mencoba menggunakan kolom dimatchBy
danpartitionBy
untuk mengidenfitas baris saat ini.Jika kolom yang ditentukan dalam
orderBy
danpartitionBy
tidak dapat mengidentifikasi setiap baris secara unik dalamrelation
, maka dua baris atau lebih mungkin memiliki peringkat yang sama dan peringkat akan ditentukan oleh parameter ikatan.RANK mengembalikan nilai kosong untuk total baris. Disarankan agar Anda menguji ekspresi Anda secara menyeluruh.
RANK tidak dibandingkan dengan RANKX sebagai SUM dibandingkan dengan SUMX.
reset
hanya dapat digunakan dalam perhitungan visual, dan tidak dapat digunakan dalam kombinasi denganorderBy
ataupartitionBy
. Jikareset
ada,axis
dapat ditentukan tetapirelation
tidak dapat.
Contoh 1 - kolom terhitung
Kueri DAX berikut ini:
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
Mengembalikan tabel yang memberi peringkat setiap geografi dengan EnglishCountryRegionName yang sama, menurut StateProvinceName dan City mereka. Nilai kolom orderBy
kosong diurutkan di akhir.
Contoh 2 - perhitungan visual
Penghitungan visual berikut DAX kueri:
SalesRankWithinYear = RANK(DENSE, ORDERBY([SalesAmount], DESC), PARTITIONBY([CalendarYear]))
SalesRankAllHistory = RANK(DENSE, ORDERBY([SalesAmount], DESC))
Buat dua kolom yang memberi peringkat setiap bulan berdasarkan total penjualan, baik dalam setiap tahun, dan seluruh riwayat.
Cuplikan layar di bawah ini memperlihatkan matriks visual dan ekspresi perhitungan visual pertama:
perhitungan visual