Bagikan melalui


GROUPBY

Berlaku untuk: Kolom terhitung Tabel terhitung Ukur perhitungan Visual

Catatan

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.

Sintaks

GROUPBY (<table> [, <groupBy_columnName> [, <groupBy_columnName> [, …]]] [, <name>, <expression> [, <name>, <expression> [, …]]])

Parameter

Term Definisi
tabel 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.
nama 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.

Nilai hasil

Tabel dengan kolom yang dipilih untuk argumen groupBy_columnName dan kolom ekstensi yang ditunjuk oleh argumen nama.

Keterangan

  • Fungsi GROUPBY melakukan hal berikut:

    1. Mulai dengan tabel yang ditentukan (dan semua tabel terkait dalam arah "ke satu").

    2. Buat pengelompokan menggunakan semua kolom GroupBy (yang diperlukan untuk ada dalam tabel dari langkah #1.).

    3. Setiap grup adalah satu baris dalam hasil, tetapi mewakili sekumpulan baris dalam tabel asli.

    4. 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 melalui 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. Secara efek, 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 melalui 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])  
)  

Fungsi SUMMARIZE
Fungsi SUMMARIZECOLUMNS