TopPercent (MDX)
Mengurutkan set dalam urutan menurun, dan mengembalikan sekumpulan tuple dengan nilai tertinggi yang total kumulatifnya sama dengan atau lebih besar dari persentase yang ditentukan.
Sintaks
TopPercent(Set_Expression, Percentage, Numeric_Expression)
Argumen
Set_Expression
Ekspresi Ekspresi Multidminsional (MDX) yang valid yang mengembalikan satu set.
Persentase
Ekspresi numerik valid yang menentukan persentase tuple yang akan dikembalikan.
Penting
Persentase harus berupa nilai positif; nilai negatif menghasilkan kesalahan.
Numeric_Expression
Ekspresi numerik valid yang biasanya merupakan ekspresi Ekspresi Multidmensional (MDX) koordinat sel yang mengembalikan angka.
Keterangan
Fungsi TopPercent menghitung jumlah ekspresi numerik yang ditentukan yang dievaluasi selama set yang ditentukan, mengurutkan set dalam urutan menurun. Fungsi kemudian mengembalikan elemen dengan nilai tertinggi yang persentase kumulatifnya dari total nilai yang dijumlahkan setidaknya persentase yang ditentukan. Fungsi ini mengembalikan subset terkecil dari satu set yang total kumulatifnya setidaknya merupakan persentase yang ditentukan. Elemen yang dikembalikan diurutkan terbesar hingga terkecil.
Peringatan
Jika Numeric_Expression mengembalikan nilai negatif, maka TopPercent hanya mengembalikan satu (1) baris.
Lihat contoh kedua untuk presentasi terperinci tentang perilaku ini.
Penting
Seperti fungsi BottomPercent, fungsi TopPercent selalu merusak hierarki.
Contoh
J. Kembalikan TopPercent
Contoh berikut mengembalikan kota terbaik yang membantu membuat 10% teratas dari penjualan penjual, untuk kategori Sepeda. Hasilnya diurutkan dalam urutan turun, dimulai dengan kota yang memiliki nilai penjualan tertinggi.
SELECT [Measures].[Reseller Sales Amount] ON 0,
TopPercent
({[Geography].[Geography].[City].Members}
, 10
, [Measures].[Reseller Sales Amount]
) ON 1
FROM [Adventure Works]
WHERE([Product].[Product Categories].[Bikes])
Ekspresi di atas menghasilkan hasil berikut:
Kota | Jumlah Penjualan Penjual |
---|---|
Toronto | $3.508.904,84 |
London | $1.521.530,09 |
Seattle | $1.209.418,16 |
Paris | $1.170.425,18 |
Kumpulan data asli dapat diperoleh dengan kueri berikut dan mengembalikan 588 baris:
SELECT [Measures].[Reseller Sales Amount] ON 0,
Order
({[Geography].[Geography].[City].Members}
, [Measures].[Reseller Sales Amount]
, BDESC
) ON 1
FROM [Adventure Works]
WHERE([Product].[Product Categories].[Bikes])
B. Memahami efek nilai negatif
Panduan berikut akan membantu memahami efek nilai negatif dalam Numeric_Expression. Pertama mari kita bangun beberapa konteks di mana kita dapat menyajikan perilaku.
Kueri berikut mengembalikan tabel Reseller 'Jumlah Penjualan', 'Total Biaya Produk' dan 'Laba Kotor', yang diurutkan dalam urutan laba yang menurun. Harap dicatat bahwa hanya ada nilai negatif untuk keuntungan; jadi, kerugian terkecil muncul di bagian atas.
SELECT { [Measures].[Reseller Sales Amount], [Measures].[Reseller Total Product Cost], [Measures].[Reseller Gross Profit] } ON columns
, ORDER( [Product].[Product Categories].[Bikes].[Touring Bikes].children, [Measures].[Reseller Gross Profit], BDESC ) ON rows
FROM [Adventure Works]
Kueri di atas mengembalikan hasil berikut; baris dari bagian tengah dihapus untuk keterbacaan.
Sepeda Touring | Jumlah Penjualan Penjual | Total Biaya Produk Penjual | Laba Kotor Penjual |
---|---|---|---|
Touring-2000 Blue, 50 | $157.444,56 | $163.112,57 | ($5.668,01) |
Touring-2000 Blue, 46 | $321.027,03 | $333.021,50 | ($11.994,47) |
Touring-3000 Blue, 62 | $87.773,61 | $100.133,52 | ($12.359,91) |
... | ... | ... | ... |
Touring-1000 Kuning, 46 | $1.016.312,83 | $1.234.454,27 | ($218.141,44) |
Touring-1000 Yellow, 60 | $1.184.363,30 | $1.443.407,51 | ($259.044,21) |
Sekarang, jika Anda diminta untuk menyajikan 100% sepeda teratas berdasarkan keuntungan, Anda akan menulis kueri seperti:
SELECT { [Measures].[Reseller Sales Amount], [Measures].[Reseller Total Product Cost], [Measures].[Reseller Gross Profit] } ON columns
, TOPPERCENT( [Product].[Product Categories].[Bikes].[Touring Bikes].children, 100,[Measures].[Reseller Gross Profit] ) ON rows
FROM [Adventure Works]
Harap dicatat bahwa kueri meminta seratus persen (100%); itu berarti semua baris harus dikembalikan. Namun, karena ada nilai negatif dalam Numeric_Expression , hanya satu baris yang dikembalikan.
Sepeda Touring | Jumlah Penjualan Penjual | Total Biaya Produk Penjual | Laba Kotor Penjual |
---|---|---|---|
Touring-2000 Blue, 50 | $157.444,56 | $163.112,57 | ($5.668,01) |