Dalam analisis data, Anda dapat menggunakan kueri ad hoc untuk membuat set data guna menangani logika atau model yang kompleks. Kueri ad hoc juga mendukung pass parameter, sehingga memungkinkan skenario analisis yang lebih dinamis dan kompleks.
Prasyarat
Anda telah menghubungkan ke sumber data. Untuk informasi selengkapnya, lihat Connect to a data source.
Batasan
Sumber data API tidak mendukung kueri ad hoc.
Masukkan kode SQL
Anda dapat membuat kueri ad hoc dengan cara-cara berikut.
Buka halaman kueri ad hoc.
Entri 1: Pada halaman Data Sources, klik Ad Hoc Query di pojok kanan atas.

Entri 2: Pada kanvas relational model editor set data, pilih sumber data. Jika tidak ada tabel data di kanvas, klik Click to use SQL code to create a dataset pada kanvas atau Create table with SQL code di panel sebelah kiri.

Entri 3: Pada kanvas physical modeling editor set data, klik Create table with SQL code di panel sebelah kiri.

Setelah Anda memasukkan kode SQL, klik Run.

Kode berikut merupakan contoh pernyataan SQL:
SELECT report_date, or*******el, shipping_type, area, price, order_number from company_sales_record where $expr{report_date :report_date} and $expr{order_level :order_level} and $expr{order_number :or********er}Setelah kueri berhasil dijalankan, Anda dapat melihat pratinjau hasilnya pada tab Result.

Klik Create Dataset untuk menyimpan set data yang dibuat dari kueri ad hoc.
Ubah kode SQL
Anda dapat mengubah kode SQL dengan tiga cara:
Klik ikon
di sebelah kanan tabel target.
Klik tabel target pada kanvas. Di bagian Table Details di bawah, klik Edit SQL.

Klik ikon
di sebelah kanan tabel target dan pilih Edit SQL.
Sintaksis SQL
Kueri ad hoc terutama mendukung pernyataan
SELECT. PernyataanINSERT,UPDATE,DELETE, dan prosedur tersimpan tidak didukung.Sintaksis kueri harus sesuai dengan sintaksis database dari sumber data yang Anda gunakan. Misalnya, jika Anda menggunakan sumber data MySQL, kueri ad hoc harus menggunakan sintaksis kueri MySQL. Beberapa sintaksis database spesifik, seperti
find()danfindone()di MongoDB, tidak didukung di Quick BI. Anda harus menggunakan pernyataanSELECTuntuk mengkueri data dalam kueri ad hoc.Untuk menambahkan komentar pada kueri ad hoc, gunakan format
-- Comment. Diperlukan spasi setelah dua tanda hubung (--).
Kode berikut merupakan contoh pernyataan SQL:
SELECT area, -- Area price -- Price from company_sales_recordJika Anda melakukan join beberapa tabel dalam kueri ad hoc, pastikan Anda menggunakan alias tabel dan alias kolom dengan benar. Sintaksis alias dapat berbeda-beda antar database.
Kueri ad hoc tidak memiliki batas baris, tetapi panjang kueri itu sendiri tidak boleh melebihi 65.536 karakter. Jika diperlukan, Anda dapat membagi atau mengoptimalkan kueri, atau membuat beberapa set data lalu menggabungkannya.
Quick BI mengirimkan SQL set data ke database untuk dieksekusi dan mengambil hasilnya. Periode timeout kueri adalah 5 menit. Jika tidak ada data yang dikembalikan dalam waktu 5 menit, akan muncul error timeout.
Jika kueri mengalami timeout dalam waktu kurang dari 5 menit, penyebabnya mungkin berasal dari pengaturan timeout pada perangkat jaringan Anda, seperti SLB. Penyebab lain yang mungkin adalah kebijakan intersepsi jaringan pada firewall yang memblokir permintaan kueri.
Placeholder
Quick BI menggunakan placeholder untuk pass parameter ke SQL Anda. Hal ini memungkinkan analisis data yang fleksibel. Anda dapat menggunakan dua jenis placeholder: placeholder nilai dan placeholder ekspresi.
Jenis | Deskripsi | Kasus Penggunaan | Format |
Placeholder nilai | Menyampaikan satu nilai atau sekumpulan nilai dari kontrol kueri pada dasbor. Catatan Jika placeholder digunakan untuk tanggal, Anda harus memilih format tanggal tertentu untuk mengontrol format nilai yang dikirimkan. | Cocok untuk sebagian besar skenario yang memerlukan pass parameter. |
|
Placeholder ekspresi | Menyampaikan suatu kondisi dari kontrol kueri pada dasbor. | Gunakan placeholder ekspresi agar pengguna dapat mengubah metode filter pada dasbor. Hal ini akan menyampaikan seluruh kondisi filter ke pernyataan SQL. Misalnya, pada dasbor yang ditunjukkan pada gambar berikut, pengguna dapat mengatur kondisi menjadi |
|
Konfigurasi
Tulis pernyataan SQL Anda dan tambahkan placeholder sesuai kebutuhan bisnis Anda.
Pada halaman editor SQL, klik Parameter Settings.

Pada panel Parameter Settings, konfigurasikan placeholder dan klik OK.

Untuk informasi lebih lanjut tentang item konfigurasi, lihat Create a dataset.
CatatanJika placeholder digunakan dalam klausa
SELECT, Anda harus menetapkan nilai default global untuk placeholder tersebut.Misalnya, Anda menambahkan placeholder bernama
profit_rangedalam klausaSELECTsaat membuat set data, seperti pada kode berikut:SELECT report_date, order_level, shipping_type,price,order_number,area, case when profit_amt< ${profit_range} then 'Loss' when profit_amt> ${profit_range} then 'Profit' else 'Break-even' end as 'Or*er Level' from company_sales_record where $expr{report_date :report_date} and $expr{order_level :order_level} and $expr{or**********************er}Jika Anda tidak menetapkan nilai default, kueri tidak dapat dijalankan.

Anda harus menetapkan nilai kueri default untuk
profit_rangedalam pengaturan parameter.
Setelah Anda menetapkan nilai default, kueri dapat dijalankan dengan sukses. Gambar berikut menunjukkan hasilnya:

Klik Save untuk menyimpan set data.

Pada bilah menu atas, klik ikon
atau klik ikon
dan pilih Create Dashboard.
Pada halaman editor dasbor, tambahkan kondisi kueri dan bind ke placeholder.
Misalnya, saat menetapkan kondisi kueri, Anda dapat menggunakan daftar drop-down pilihan tunggal untuk memfilter area dan bind ke placeholder nilai untuk mengirimkan satu nilai.

Gunakan filter teks pada or********er dan bind ke placeholder ekspresi untuk mengirimkan suatu kondisi.

Saat Anda mengkueri data pada dasbor, nilai dari kontrol kueri akan dikirimkan ke placeholder yang sesuai dalam SQL Anda.
Misalnya, gambar berikut menunjukkan kondisi kueri pada dasbor.

Pernyataan SQL yang sesuai adalah sebagai berikut:
SELECT * FROM company_sales_record WHERE area = 'North China' AND order_number > 100Contoh penggunaan placeholder:
SELECT * FROM tablename WHERE area in ('$val{area_ph}') -- Tipe teks, multi-pilih AND name = '$val{name_ph}' -- Tipe teks, pilihan tunggal AND number = $val{number_ph} -- Tipe numerik AND report_date > '$val{report_date_ph.get(0)}' -- Tipe tanggal, ambil tanggal awal dari date range picker AND report_date < '$val{report_date_ph.get(1)}' -- Tipe tanggal, ambil tanggal akhir dari date range picker
Untuk informasi lebih lanjut tentang kasus penggunaan placeholder, lihat Placeholders.
Kompatibilitas mundur:
Format lama untuk placeholder nilai (sebelumnya disebut placeholder): ${placeholder_name}
Format lama untuk placeholder ekspresi (sebelumnya disebut parameter): ${physical_field_name:parameter_name}
