Baca dalam bahasa Inggris

Bagikan melalui


GROUPBY

Berlaku untuk: kolom terhitungTabel terhitungMeasurePerhitungan 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, GROUPBYnot 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 (or dalam tabel related,) tempat data akan dikelompokkan. Parameter ini tidak boleh berupa ekspresi.
name Nama yang diberikan ke kolom baru yang ditambahkan ke daftar kolom GroupBy, diapit dalam tanda kutip ganda.
expression Salah satu fungsi agregasi X dengan argumen firstCURRENTGROUP(). Lihat Dengan bagian CURRENTGROUP di bawah ini untuk daftar lengkap fungsi agregasi X yang didukung.

Mengembalikan value

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

Komentar

  • Fungsi GROUPBY melakukan hal berikut:

    1. Mulailah dengan tabel yang ditentukan (andallrelated tabel dalam arah "ke satu").

    2. Buat pengelompokan menggunakan all 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, evaluate kolom ekstensi yang ditambahkan. Tidak seperti fungsi SUMMARIZE, CALCULATE tersirat not dilakukan, and grup tidak ditempatkan ke dalam konteks filter.

  • Setiap kolom yang Anda define nama harus memiliki ekspresi yang sesuai; jika tidak, error dikembalikan. Argumen first, nama, menentukan nama kolom dalam hasil. Argumen second, ekspresi, menentukan perhitungan yang dilakukan untuk mendapatkan value untuk setiap baris di kolom tersebut.

  • groupBy_columnName harus berada dalam or tabel dalam tabel related.

  • Setiap nama harus diapit dalam tanda kutip ganda.

  • Fungsi ini mengelompokkan sekumpulan baris yang dipilih ke dalam sekumpulan baris ringkasan menurut values satu or lebih groupBy_columnName kolom. 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 SUMMARIZECOLUMNSorSUMMARIZE.

  • Fungsi ini not didukung untuk digunakan dalam mode DirectQuery saat digunakan dalam kolom terhitung or aturan keamanan tingkat baris (RLS).

Dengan CURRENTGROUP

CURRENTGROUP hanya dapat digunakan dalam ekspresi yang menentukan kolom ekstensi dalam fungsi GROUPBY. Dalameffect, CURRENTGROUP mengembalikan sekumpulan baris dari argumen tabel GROUPBY yang termasuk dalam baris hasil GROUPBY saat ini. Fungsi CURRENTGROUP tidak mengambil argumen and hanya didukung sebagai argumen first 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 first menghitung total penjualan yang dikelompokkan menurut kategori andproduct negara atas tabel fisik dengan menggunakan fungsi SUMMARIZECOLUMNS. Kemudian menggunakan fungsi GROUPBY untuk memindai hasil perantara dari langkah first untuk find penjualan maksimum di setiap negara di seluruh kategori product.

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