All Products
Search
Document Center

Simple Log Service:Ekspresi kondisional

Last Updated:Jun 21, 2026

Topik ini menjelaskan sintaksis ekspresi kondisional serta memberikan contoh penggunaannya.

Tabel berikut menjelaskan ekspresi kondisional yang didukung oleh Simple Log Service.

Penting

Jika Anda ingin menggunakan string dalam pernyataan analitik, bungkus string tersebut dengan tanda kutip tunggal (''). String yang tidak dibungkus atau yang dibungkus dengan tanda kutip ganda ("") dianggap sebagai nama field atau nama kolom. Misalnya, 'status' merepresentasikan string status, sedangkan status atau "status" merujuk pada field log status.

Expression

Syntax

Description

Supported in SQL

Supported in SPL

CASE WHEN expression

CASE WHEN condition1 THEN result1

[WHEN condition2 THEN result2]

[ELSE result3]

END

Mengklasifikasikan data berdasarkan kondisi yang ditentukan.

IF expression

IF(condition, result1)

Jika condition bernilai true, maka result1 dikembalikan. Jika tidak, null dikembalikan.

IF(condition, result1, result2)

Jika condition bernilai true, maka result1 dikembalikan. Jika tidak, result2 dikembalikan.

COALESCE expression

COALESCE(expression1, expression2, expression3...)

Mengembalikan nilai pertama yang tidak null dari beberapa ekspresi.

NULLIF expression

NULLIF(expression1, expression2)

Menilai apakah nilai dari dua ekspresi sama. Jika nilainya sama, null dikembalikan. Jika tidak, nilai dari ekspresi pertama dikembalikan.

×

TRY expression

TRY(expression)

Menangkap error yang terjadi selama pemanggilan suatu ekspresi dan memastikan bahwa Simple Log Service tetap dapat melakukan kueri dan menganalisis data meskipun terjadi error.

CASE WHEN expression

Ekspresi CASE WHEN digunakan untuk mengklasifikasikan data.

Sintaksis

CASE WHEN condition1 THEN result1
     [WHEN condition2 THEN result2]
     [ELSE result3]
END

Parameter

Parameter

Description

condition

Nilai parameter ini adalah ekspresi kondisional.

result1

Hasil yang dikembalikan.

Contoh

  • Contoh 1: Ekstrak informasi browser dari nilai field http_user_agent, klasifikasikan menjadi jenis Chrome, Safari, dan unknown, lalu hitung jumlah tampilan halaman (PV) untuk masing-masing jenis tersebut.

    • Pernyataan kueri

      * |
      SELECT
        CASE
          WHEN http_user_agent like '%Chrome%' then 'Chrome'
          WHEN http_user_agent like '%Safari%' then 'Safari'
          ELSE 'unknown'
        END AS http_user_agent,
        count(*) AS pv
      GROUP BY
        http_user_agent
    • Hasil kueri dan analisis menunjukkan jumlah tampilan halaman (PV) untuk setiap browser (http_user_agent): Chrome (5.563), Safari (1.842), dan unknown (1.666).

  • Contoh 2: Kueri distribusi permintaan yang dikirim pada waktu yang berbeda.

    • Pernyataan kueri

      * |
      SELECT
        CASE
          WHEN request_time < 10 then 't10'
          WHEN request_time < 100 then 't100'
          WHEN request_time < 1000 then 't1000'
          WHEN request_time < 10000 then 't10000'
          ELSE 'large'
        END AS request_time,
        count(*) AS pv
      GROUP BY
        request_time
    • Hasil kueri dan analisis mengembalikan dua catatan: PV sebesar 1.563.542 ketika request_time bernilai t100, dan 533 ketika request_time bernilai large.

IF expression

Ekspresi IF digunakan untuk mengklasifikasikan data dan bekerja secara serupa dengan ekspresi CASE WHEN.

Sintaksis

  • Jika condition bernilai true, maka result1 dikembalikan; jika tidak, null dikembalikan.

    IF(condition, result1)
  • Jika condition bernilai true, maka result1 dikembalikan; jika tidak, result2 dikembalikan.

    IF(condition, result1, result2)

Parameter

Parameter

Description

condition

Nilai parameter ini adalah ekspresi kondisional.

result

Hasil yang dikembalikan.

Contoh

Hitung proporsi permintaan dengan kode status 200 terhadap total permintaan.

  • Pernyataan kueri

    * |
    SELECT
      sum(IF(status = 200, 1, 0)) * 1.0 / count(*) AS status_200_percentag
  • Hasil kueri dan analisis: Nilai status_200_percentage adalah 0,884686775009848.

COALESCE expression

Ekspresi COALESCE mengembalikan nilai pertama yang tidak null dari daftar ekspresi yang diberikan.

Sintaksis

COALESCE(expression1, expression2, expression3...)

Parameter

Parameter

Description

expression

Nilai parameter ini adalah ekspresi bertipe apa pun.

Contoh

Hitung rasio pengeluaran hari kemarin terhadap pengeluaran pada hari yang sama bulan lalu.

  • Pernyataan kueri

    * |
    SELECT
      compare("yesterday's expenses", 604800) AS diff
    FROM  (
        SELECT
          COALESCE(sum(PretaxAmount), 0) AS "yesterday's expenses"
        FROM log
      )
  • Hasil kueri dan analisis

    • Nilai 6.514.393.413,0 menunjukkan pengeluaran hari kemarin.

    • Nilai 19.578.267.596,0 menunjukkan pengeluaran pada hari yang sama bulan lalu.

    • Nilai 0,33273594719539659 menunjukkan rasio pengeluaran hari kemarin terhadap pengeluaran pada hari yang sama bulan lalu.

NULLIF expression

Ekspresi NULLIF membandingkan nilai dari dua ekspresi. Jika nilainya sama, ekspresi ini mengembalikan null; jika berbeda, nilai dari ekspresi pertama dikembalikan.

Sintaksis

NULLIF(expression1, expression2)

Parameter

Parameter

Description

expression

Nilai parameter ini adalah ekspresi skalar yang valid.

Contoh

Bandingkan nilai field client_ip dan host. Jika nilainya berbeda, kembalikan nilai field client_ip.

  • Pernyataan kueri

    * | SELECT NULLIF(client_ip,host)
  • Hasil kueri dan analisis: Kueri mengembalikan satu kolom _col0, yang menampilkan hasil dari NULLIF(client_ip,host). Fungsi ini mengembalikan nilai client_ip jika client_ip berbeda dari host, dan mengembalikan NULL jika keduanya sama.

TRY expression

Ekspresi TRY menangkap error yang terjadi selama evaluasi suatu ekspresi dan memastikan bahwa Simple Log Service tetap dapat menjalankan kueri serta menganalisis data meskipun terjadi error.

Sintaksis

TRY(expression)

Parameter

Parameter

Description

expression

Nilai parameter ini adalah ekspresi bertipe apa pun.

Contoh

Jika terjadi error saat memanggil ekspresi regexp_extract, ekspresi TRY akan menangkap error tersebut sehingga Simple Log Service tetap melanjutkan kueri dan analisis data, serta mengembalikan hasilnya.

  • Pernyataan kueri

    * |
    SELECT
      TRY(regexp_extract(request_uri, '.*\/(file.*)', 1)) AS file,
      count(*) AS count
    GROUP BY
      file
  • Hasil kueri dan analisis menunjukkan jumlah untuk setiap nama file yang diekstraksi, misalnya: file-5 (851), file-7 (928), file-3 (837), dan file-4 (863).