All Products
Search
Document Center

Quick BI:Custom SQL

Last Updated:Apr 01, 2026

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.

  1. Buka halaman kueri ad hoc.

    • Entri 1: Pada halaman Data Sources, klik Ad Hoc Query di pojok kanan atas.image

    • 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.image

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

      image

  2. Setelah Anda memasukkan kode SQL, klik Run.

    image

    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.image

  3. 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 image di sebelah kanan tabel target.image

  • Klik tabel target pada kanvas. Di bagian Table Details di bawah, klik Edit SQL.image

  • Klik ikon image di sebelah kanan tabel target dan pilih Edit SQL.

    image

Sintaksis SQL

  • Kueri ad hoc terutama mendukung pernyataan SELECT. Pernyataan INSERT, 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() dan findone() di MongoDB, tidak didukung di Quick BI. Anda harus menggunakan pernyataan SELECT untuk mengkueri data dalam kueri ad hoc.

  • Untuk menambahkan komentar pada kueri ad hoc, gunakan format -- Comment. Diperlukan spasi setelah dua tanda hubung (--).

    image

    Kode berikut merupakan contoh pernyataan SQL:

    SELECT  area,  -- Area
            price  -- Price  
    from    company_sales_record
  • Jika 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.

Catatan
  • 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.

'$val{placeholder_name}'

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 Profit > 50 atau Profit < 50. Seluruh kondisi, termasuk operatornya, perlu dikirimkan ke pernyataan SQL.参数传参

$expr{physical_field_name:placeholder_name}

Konfigurasi

Tulis pernyataan SQL Anda dan tambahkan placeholder sesuai kebutuhan bisnis Anda.

  1. Pada halaman editor SQL, klik Parameter Settings.

    image

  2. Pada panel Parameter Settings, konfigurasikan placeholder dan klik OK.

    image

    Untuk informasi lebih lanjut tentang item konfigurasi, lihat Create a dataset.

    Catatan

    Jika placeholder digunakan dalam klausa SELECT, Anda harus menetapkan nilai default global untuk placeholder tersebut.

    Misalnya, Anda menambahkan placeholder bernama profit_range dalam klausa SELECT saat 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.

    image

    Anda harus menetapkan nilai kueri default untuk profit_range dalam pengaturan parameter.

    image

    Setelah Anda menetapkan nilai default, kueri dapat dijalankan dengan sukses. Gambar berikut menunjukkan hasilnya:

    image

  3. Klik Save untuk menyimpan set data.image

  4. Pada bilah menu atas, klik ikon image atau klik ikon image dan pilih Create Dashboard.

    image

  5. 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.image.png

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

  6. 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.image.png

    Pernyataan SQL yang sesuai adalah sebagai berikut:

    SELECT * FROM company_sales_record
    WHERE area = 'North China' 
    AND order_number > 100

    Contoh 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.

Catatan

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}