DAX CALCULATETABLE Vs FILTER Fungsi

DAX CALCULATETABLE Vs FILTER Fungsi

Kedua-dua dan ialah alat yang berkuasa untuk memanipulasi dan menganalisis data dalam pertanyaan DAX, tetapi ia mempunyai beberapa perbezaan utama yang penting untuk difahami.

Dalam blog ini, kami akan menyemak fungsi CALCULATETABLE dan pelan pertanyaannya dalam studio DAX , dan memahami cara ia berbeza daripada fungsi FILTER . Pada akhirnya, anda akan mempunyai pemahaman yang lebih baik tentang cara memilih fungsi yang sesuai untuk keperluan analisis data anda.

Untuk menunjukkan, kami akan menggunakan kod DAX di bawah.

DAX CALCULATETABLE Vs FILTER Fungsi

Apabila anda menjalankan kod ini, anda akan mendapat jadual yang menunjukkan Jenama dan Warna.

DAX CALCULATETABLE Vs FILTER Fungsi

Dalam tab Pelan Pertanyaan , anda akan mendapat kod yang sepadan dengan pengendali CrossApply dalam Enjin Formula .

DAX CALCULATETABLE Vs FILTER Fungsi

Pada masa yang sama, anda dapat melihat bahawa kod itu hanya mendapatkan semula warna dan jenama produk dalam tab Pemasa Pelayan .

DAX CALCULATETABLE Vs FILTER Fungsi

Isi kandungan

Keputusan Pemasa Pelayan DAX Studio Untuk BOLEH DIKIRA

Sebagai contoh, mari kita menapis warna produk untuk hanya menunjukkan Merah dan/atau Hitam.

Anda boleh melakukannya dengan menggunakan fungsi FILTER. Apabila anda menjalankannya, Pemasa Pelayan akan menunjukkan bahawa argumen FILTER tidak digunakan pada kod xmSQL .

DAX CALCULATETABLE Vs FILTER Fungsi

Tetapi jika anda menggunakan fungsi CALCULATETABLE, pertanyaan dalam tab Pemasa Pelayan akan menunjukkan bahawa keputusan telah ditapis mengikut warna produk.

DAX CALCULATETABLE Vs FILTER Fungsi

Pelan Pertanyaan BOLEH DIKIRA Dalam DAX Studio

Mari lihat Pelan Pertanyaan untuk setiap fungsi.

CALCULATETABLE berada pada baris pertama Rancangan Pertanyaan Logik kerana ia merupakan fungsi peringkat atas dalam kod dan oleh itu tidak bergantung pada sebarang keperluan.

DAX CALCULATETABLE Vs FILTER Fungsi

Apabila anda membaca pelan pertanyaan bagi fungsi CALCULATETABLE, anda tidak bermula dengan hujah pertama. Anda perlu memahami konteks penapis yang digunakan terlebih dahulu. Jadi mari kita ke baris 5.

Anda boleh melihat bahawa pengendali VertiPaq memerlukan lajur warna produk kerana penapis yang digunakan. Ia kemudian mengimbas lajur ini dan menggunakan gabungan Penapis Not IsEmpty untuk menyemak warna produk pada setiap baris.

Selepas konteks penapis telah disediakan, hujah dilakukan.

Apabila difikirkan semula, jika anda menggunakan fungsi FILTER, anda akan melihat pelan pertanyaan yang berbeza, jadi hujah CROSSJOIN dilakukan sebelum mengenal pasti konteks penapis.

DAX CALCULATETABLE Vs FILTER Fungsi

Kelemahan pendekatan ini ialah ia tidak menolak keadaan penapis ke Enjin Storan. Anda tidak akan dapat menggunakan klausa WHERE di dalam xmSQL yang akan meletakkan beban berat pada Enjin Formula.

Dan apabila anda bekerja dengan berbilang jadual, gabungan penapis bagi fungsi CROSSJOIN akan menjadi besar. Ini memperlahankan prestasi kod DAX. Oleh itu, dalam kebanyakan kes, adalah disyorkan untuk menggunakan fungsi CALCULATETABLE.

Jadi daripada melakukan semua pengiraan dalam Enjin Formula, anda boleh menyuntik keadaan penapis di dalam kelas WHERE kod XMSQL.

Peralihan Konteks Untuk Fungsi DAX Serupa

Masa Pelayan

Konsep ini juga boleh digunakan untuk fungsi CALCULATE. Mari gunakan kod DAX di bawah sebagai contoh.

DAX CALCULATETABLE Vs FILTER Fungsi

Sukatan secara automatik mempunyai fungsi CALCULATE di sekelilingnya.

Apabila anda menjalankan kod ini, anda akan mendapat jadual yang menunjukkan jumlah Jumlah Jualan untuk setiap warna.

DAX CALCULATETABLE Vs FILTER Fungsi

Dalam tab Pemasa Pelayan, anda boleh melihat bahawa kod sedang melaksanakan dua pertanyaan. Pertanyaan pertama adalah mengira jumlah amaun Jualan daripada jadual Jualan berkenaan dengan jadual Produk.

DAX CALCULATETABLE Vs FILTER Fungsi

Sebaliknya, pertanyaan kedua mendapatkan semula warna produk daripada jadual Produk. Ia sepadan dengan fungsi dalam kod DAX.

DAX CALCULATETABLE Vs FILTER Fungsi

Enjin Formula meletakkan cache data kedua-dua pertanyaan bersebelahan. Ia bermula dengan mendapatkan semula nilai daripada cache data kedua dan kemudian melakukan carian dalam cache data pertama.

Pelan Pertanyaan

Dalam tab Pelan Pertanyaan, Pelan Pertanyaan Logik mengimbas warna produk kerana hujah .

Kemudian, VertiPaq merumuskan jumlah Jumlah Jualan bergantung pada warna produk. Ia melakukan peralihan konteks yang menukar nilai warna produk kepada konteks penapis yang setara.

DAX CALCULATETABLE Vs FILTER Fungsi

Penapis yang dibuat oleh peralihan konteks diterjemahkan ke dalam sifat DependOnCols dalam Pelan Pertanyaan. Selepas VertiPaq mengimbas lajur yang diperlukan untuk mengira Jumlah Jualan, ia mendarabkan Kuantiti Jualan dengan Harga Bersih.

Jumlah Jualan kemudiannya dikembalikan sebagai hasil dalam bentuk jenis data mata wang. Dan akhirnya, ADDCOLUMNS mengembalikan jadual dengan dua lajur yang mengandungi amaun Warna dan Jumlah Jualan.

Kesimpulan

Pelan pertanyaan boleh memberi kesan yang ketara pada prestasi pertanyaan, kerana pelan pertanyaan yang berbeza mungkin mempunyai tahap kecekapan yang berbeza.

Apabila menggunakan fungsi CALCULATETABLE dan FILTER dalam pertanyaan DAX, pelan pertanyaan mungkin berbeza bergantung pada senario tertentu dan pelbagai faktor, seperti ungkapan formula khusus yang digunakan dan keupayaan enjin pertanyaan.

Secara umum, adalah idea yang baik untuk menguji dan membandingkan prestasi pelan pertanyaan yang berbeza untuk menentukan pendekatan yang paling cekap untuk senario tertentu.

Semua yang terbaik,


Apa Itu Diri Dalam Python: Contoh Dunia Sebenar

Apa Itu Diri Dalam Python: Contoh Dunia Sebenar

Apa Itu Diri Dalam Python: Contoh Dunia Sebenar

Cara Menyimpan & Memuatkan Fail RDS Dalam R

Cara Menyimpan & Memuatkan Fail RDS Dalam R

Anda akan belajar cara menyimpan dan memuatkan objek daripada fail .rds dalam R. Blog ini juga akan membincangkan cara mengimport objek dari R ke LuckyTemplates.

N Hari Perniagaan Pertama Dilawati Semula – Penyelesaian Bahasa Pengekodan DAX

N Hari Perniagaan Pertama Dilawati Semula – Penyelesaian Bahasa Pengekodan DAX

Dalam tutorial bahasa pengekodan DAX ini, pelajari cara menggunakan fungsi GENERATE dan cara menukar tajuk ukuran secara dinamik.

Pamerkan Cerapan Menggunakan Teknik Visual Dinamik Berbilang Thread Dalam LuckyTemplates

Pamerkan Cerapan Menggunakan Teknik Visual Dinamik Berbilang Thread Dalam LuckyTemplates

Tutorial ini akan merangkumi cara menggunakan teknik Visual Dinamik Berbilang Thread untuk mencipta cerapan daripada visualisasi data dinamik dalam laporan anda.

Pengenalan Untuk Menapis Konteks Dalam LuckyTemplates

Pengenalan Untuk Menapis Konteks Dalam LuckyTemplates

Dalam artikel ini, saya akan menjalankan konteks penapis. Konteks penapis ialah salah satu topik utama yang perlu dipelajari oleh mana-mana pengguna LuckyTemplates pada mulanya.

Petua Terbaik Menggunakan Aplikasi Dalam Perkhidmatan Dalam Talian LuckyTemplates

Petua Terbaik Menggunakan Aplikasi Dalam Perkhidmatan Dalam Talian LuckyTemplates

Saya ingin menunjukkan cara perkhidmatan dalam talian LuckyTemplates Apps boleh membantu dalam mengurus laporan dan cerapan berbeza yang dijana daripada pelbagai sumber.

Analisis Perubahan Margin Keuntungan Lebih Masa – Analitis Dengan LuckyTemplates Dan DAX

Analisis Perubahan Margin Keuntungan Lebih Masa – Analitis Dengan LuckyTemplates Dan DAX

Ketahui cara untuk menyelesaikan perubahan margin keuntungan anda menggunakan teknik seperti mengukur percabangan dan menggabungkan formula DAX dalam LuckyTemplates.

Idea Pewujudan Untuk Cache Data Dalam DAX Studio

Idea Pewujudan Untuk Cache Data Dalam DAX Studio

Tutorial ini akan membincangkan tentang idea pewujudan cache data dan cara ia mempengaruhi prestasi DAX dalam memberikan hasil.

Pelaporan Perniagaan Menggunakan LuckyTemplates

Pelaporan Perniagaan Menggunakan LuckyTemplates

Jika anda masih menggunakan Excel sehingga sekarang, maka inilah masa terbaik untuk mula menggunakan LuckyTemplates untuk keperluan pelaporan perniagaan anda.

Apakah LuckyTemplates Gateway? Semua yang Anda Perlu Tahu

Apakah LuckyTemplates Gateway? Semua yang Anda Perlu Tahu

Apakah LuckyTemplates Gateway? Semua yang Anda Perlu Tahu