Dalam analisis data, SQL kustom memungkinkan pembuatan tabel data dengan logika atau model yang kompleks. SQL kustom juga mendukung pengoperan parameter untuk mengakomodasi skenario analisis yang lebih canggih dan variabel.
Prasyarat
Anda telah memperoleh data. Untuk informasi lebih lanjut, lihat Hubungkan ke sumber data.
Batasan
Sumber data API tidak mendukung SQL kustom.
Masukkan kode SQL
Anda dapat menambahkan SQL kustom menggunakan salah satu metode berikut:
Navigasikan ke halaman SQL kustom.
Entri 1: Di halaman sumber data, klik Create Dataset By SQL di pojok kanan atas.

Entri 2: Di halaman pengeditan dataset, pilih sumber data di panel kiri. Jika tidak ada tabel data di kanvas, klik Click To Create A Dataset Using SQL Code di kanvas atau Buat tabel dengan kode SQL di panel kiri.

Setelah memasukkan kode SQL, klik Run.

Contoh pernyataan SQL:
SELECT report_date, order_level, 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 :order_number}Setelah berhasil dijalankan, Anda dapat melihat pratinjau hasilnya di tab Run Result.

Klik Confirm Edit untuk menyimpan dataset yang dibuat dengan pernyataan SQL kustom.
Modifikasi kode SQL
Anda dapat memodifikasi kode SQL menggunakan salah satu dari tiga metode berikut:
Klik ikon
di sebelah kanan tabel target. 
Klik tabel target di kanvas. Di bagian Rincian Tabel di bawah, klik Edit Code.

Klik ikon
di sebelah kanan tabel target dan pilih Edit Kode.
Sintaksis SQL
SQL kustom untuk dataset terutama mendukung pernyataan kueri. Sintaks INSERT, UPDATE, dan DELETE tidak didukung dalam pernyataan SQL kustom, begitu juga prosedur tersimpan.
Sintaksis kueri SQL mengikuti sintaksis database dari sumber data yang digunakan. Misalnya, jika sumber data menggunakan MySQL, SQL kustom harus ditulis sesuai dengan pernyataan kueri MySQL. Beberapa sintaksis database khusus tidak didukung di Quick BI, seperti find() dan findone() di MongoDB. Dalam SQL kustom, Anda perlu menggunakan pernyataan SELECT untuk mengkueri data.
Saat menambahkan komentar dalam SQL kustom, Anda dapat menggunakan format "--" + spasi + komentar.

Contoh pernyataan SQL:
SELECT area, -- area price -- harga from company_sales_recordSaat menggabungkan beberapa tabel dalam SQL kustom, Anda perlu memperhatikan penggunaan alias tabel dan alias bidang, karena database yang berbeda mungkin memiliki sintaksis penulisan alias yang berbeda.
Tidak ada batasan jumlah baris dalam SQL kustom untuk dataset, tetapi panjang karakter SQL kustom tidak boleh melebihi 65.536 karakter. Jika diperlukan, Anda dapat membagi dan mengoptimalkan logika SQL kustom, atau membuat beberapa dataset secara terpisah lalu melakukan kueri gabungan.
SQL dataset dieksekusi di database, dan data hasil dikembalikan ke Quick BI. Waktu tunggu kueri adalah 5 menit. Jika data tidak dikembalikan setelah 5 menit, akan terjadi kesalahan timeout.
Jika terjadi kesalahan timeout kueri sebelum batas waktu 5 menit, penyebab umum termasuk pengaturan timeout pada perangkat jaringan sisi pengguna seperti SLB, atau kebijakan pemblokiran jaringan firewall yang menyebabkan permintaan antarmuka kueri dicegat.
Placeholder
Quick BI memungkinkan pengoperan parameter menggunakan placeholder. Fitur ini memungkinkan analisis data yang fleksibel selama peninjauan laporan dan analisis data dengan mengoper nilai placeholder ke SQL melalui kontrol kueri. Quick BI mendukung placeholder nilai dan ekspresi, yang dapat Anda konfigurasikan sesuai kebutuhan.
Tipe | Deskripsi | Skenario | Format |
Placeholder nilai | Anda dapat mengoper nilai atau sekumpulan nilai melalui kontrol kueri di dasbor. null Jika placeholder menunjukkan nilai tanggal, Anda harus menentukan format tanggal untuk menentukan format nilai input. | Berlaku untuk sebagian besar skenario di mana parameter perlu dioper. |
|
Placeholder ekspresi | Anda dapat mengoper kondisi melalui kontrol kueri di dasbor. | Ketika pengguna dapat secara bebas memodifikasi metode filter dalam kondisi filter di dasbor, Anda perlu menggunakan placeholder ekspresi untuk mengoper seluruh kondisi filter ke SQL. Sebagai contoh, dalam dasbor berikut, pengguna dapat menyetel |
|
Metode konfigurasi
Buat SQL untuk memenuhi persyaratan bisnis dan masukkan placeholder.
Di halaman pengeditan kode SQL, klik Placeholder Management.

Di panel Placeholder Management, konfigurasikan placeholder seperti yang ditunjukkan dan klik OK.

Untuk item konfigurasi, lihat Buat dataset.
nullJika placeholder digunakan setelah pernyataan select, Anda harus menetapkan nilai default yang berlaku secara global.
Sebagai contoh, saat membuat dataset, sertakan placeholder "profit_range" setelah pernyataan select sebagai 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'Profitable' else 'Flat' end 'order_level' from company_sales_record where $expr{report_date :report_date} and $expr{order_level :order_level} and $expr{order_number :order_number}Tanpa nilai default, kode tersebut tidak akan berjalan dengan benar.

Tetapkan nilai default kueri untuk "profit_range" di Manajemen Placeholder.

Setelah menetapkan nilai default, kode akan berjalan dengan benar, seperti yang ditunjukkan:

Klik Simpan untuk menyimpan dataset.

Di bilah menu atas, klik ikon
atau klik ikon
dan pilih Buat Dasbor.
Di halaman pengeditan dasbor, tambahkan kondisi kueri dan ikat placeholder.
Sebagai contoh, untuk menetapkan kondisi kueri, gunakan pemilihan drop-down tunggal untuk memfilter area, ikat placeholder SQL, dan oper satu nilai.

Gunakan penyaringan teks untuk memfilter order_number, ikat parameter SQL, dan oper sebuah kondisi.

Saat dasbor dikueri, ia akan mentransmisikan konten tertentu ke placeholder nilai dan ekspresi berdasarkan kondisi kueri.
Sebagai contoh, kondisi kueri dasbor diilustrasikan di bawah ini.

SQL yang sesuai adalah sebagai berikut:
SELECT * FROM company_sales_record WHERE area = 'North' AND order_number > 100Contoh penggunaan placeholder adalah sebagai berikut:
SELECT * FROM tablename WHERE area in ('$val{area_ph}') -- Tipe teks, pilihan ganda 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, peroleh tanggal mulai kontrol rentang tanggal AND report_date < '$val{report_date_ph.get(1)}' -- Tipe tanggal, peroleh tanggal akhir kontrol rentang tanggal
Untuk skenario di mana placeholder diterapkan, lihat Placeholder.
Kompatibel dengan penulisan historis:
Penulisan historis placeholder nilai (placeholder asli): ${nama_placeholder}
Penulisan historis placeholder ekspresi (parameter asli): ${nama_field_fisik:nama_parameter}
