Bagikan melalui


GROUPBY

Berlaku untuk: kolom terhitungTabel terhitungUkurPerhitungan 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:

    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 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])
)

fungsi fungsi