GROUPBY
Berlaku untuk: kolom terhitungTabel terhitung
Ukur
Perhitungan visual
Nota
Fungsi ini tidak disarankan untuk digunakan dalam perhitungan visual karena kemungkinan mengembalikan hasil yang tidak berarti.
Fungsi GROUPBY mirip dengan fungsi SUMMARIZE. Namun, GROUPBY tidak melakukan CALCULATE implisit untuk kolom ekstensi apa pun yang ditambahkannya. GROUPBY mengizinkan fungsi baru, CURRENTGROUP, untuk digunakan di dalam fungsi agregasi di kolom ekstensi yang ditambahkannya. GROUPBY digunakan untuk melakukan beberapa agregasi dalam satu pemindaian tabel.
Sintaksis
GROUPBY (<table> [, <groupBy_columnName> [, <groupBy_columnName> [, …]]] [, <name>, <expression> [, <name>, <expression> [, …]]])
Parameter
Istilah | Definisi |
---|---|
table |
Ekspresi DAX apa pun yang mengembalikan tabel data. |
groupBy_columnName |
Nama kolom yang sudah ada dalam tabel (atau dalam tabel terkait,) tempat data akan dikelompokkan. Parameter ini tidak boleh berupa ekspresi. |
name |
Nama yang diberikan ke kolom baru yang sedang ditambahkan ke daftar kolom GroupBy, diapit dalam tanda kutip ganda. |
expression |
Salah satu fungsi agregasi X dengan argumen pertama adalah CURRENTGROUP(). Lihat Dengan bagian CURRENTGROUP di bawah ini untuk daftar lengkap fungsi agregasi X yang didukung. |
Mengembalikan nilai
Tabel dengan kolom yang dipilih untuk argumen groupBy_columnName dan kolom ekstensi yang ditunjuk oleh argumen nama.
Komentar
Fungsi GROUPBY melakukan hal berikut:
Mulai dengan tabel yang ditentukan (dan semua tabel terkait dalam arah "ke satu").
Buat pengelompokan menggunakan semua kolom GroupBy (yang diperlukan untuk ada dalam tabel dari langkah #1.).
Setiap grup adalah satu baris dalam hasil, tetapi mewakili sekumpulan baris dalam tabel asli.
Untuk setiap grup, evaluasi kolom ekstensi yang ditambahkan. Tidak seperti fungsi SUMMARIZE, CALCULATE tersirat tidak dilakukan, dan grup tidak ditempatkan ke dalam konteks filter.
Setiap kolom yang Anda tentukan namanya harus memiliki ekspresi yang sesuai; jika tidak, kesalahan dikembalikan. Argumen pertama, nama, menentukan nama kolom dalam hasil. Argumen kedua, ekspresi, menentukan perhitungan yang dilakukan untuk mendapatkan nilai untuk setiap baris di kolom tersebut.
groupBy_columnName
harus dalam tabel atau dalam tabel terkait.Setiap nama harus diapit dalam tanda kutip ganda.
Fungsi ini mengelompokkan sekumpulan baris yang dipilih ke dalam sekumpulan baris ringkasan berdasarkan nilai satu atau beberapa kolom groupBy_columnName. Satu baris dikembalikan untuk setiap grup.
GROUPBY terutama digunakan untuk melakukan agregasi atas hasil perantara dari ekspresi tabel DAX. Untuk agregasi yang efisien atas tabel fisik dalam model, pertimbangkan untuk menggunakan fungsi SUMMARIZECOLUMNS atau SUMMARIZE.
Fungsi ini tidak didukung untuk digunakan dalam mode DirectQuery saat digunakan dalam kolom terhitung atau aturan keamanan tingkat baris (RLS).
Dengan CURRENTGROUP
CURRENTGROUP hanya dapat digunakan dalam ekspresi yang menentukan kolom ekstensi dalam fungsi GROUPBY. Efeknya, CURRENTGROUP mengembalikan sekumpulan baris dari argumen tabel GROUPBY yang termasuk dalam baris saat ini dari hasil GROUPBY. Fungsi CURRENTGROUP tidak mengambil argumen dan hanya didukung sebagai argumen pertama ke salah satu fungsi agregasi berikut: AVERAGEX, COUNTAX, COUNTX, GEOMEANX, MAXX, MINX, PRODUCTX, STDEVX.S, STDEVX.P, SUMX, VARX.S, VARX.P.
Contoh
Contoh berikut terlebih dahulu menghitung total penjualan yang dikelompokkan menurut kategori negara dan produk atas tabel fisik dengan menggunakan fungsi SUMMARIZECOLUMNS. Kemudian menggunakan fungsi GROUPBY untuk memindai hasil perantara dari langkah pertama untuk menemukan penjualan maksimum di setiap negara di seluruh kategori produk.
DEFINE
VAR SalesByCountryAndCategory =
SUMMARIZECOLUMNS(
Geography[Country],
Product[Category],
"Total Sales", SUMX(Sales, Sales[Price] * Sales[Qty])
)
EVALUATE
GROUPBY(
SalesByCountryAndCategory,
Geography[Country],
"Max Sales", MAXX(CURRENTGROUP(), [Total Sales])
)
Konten terkait
fungsi