全部产品
Search
文档中心

Simple Log Service:Ekspresi Kondisional

更新时间:Jun 26, 2025

Dokumen ini menjelaskan sintaks dari 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, apit string tersebut dengan tanda kutip tunggal (''). String yang tidak diapit atau diapit dengan tanda kutip ganda ("") menunjukkan nama bidang atau kolom. Sebagai contoh, 'status' menunjukkan string status, sedangkan status atau "status" menunjukkan bidang log status.

Ekspresi

Sintaks

Deskripsi

Didukung di SQL

Didukung di SPL

CASE WHEN expression

CASE WHEN kondisi1 THEN hasil1

[WHEN kondisi2 THEN hasil2]

[ELSE hasil3]

END

Mengklasifikasikan data berdasarkan kondisi tertentu.

IF expression

IF(kondisi, hasil1)

Jika kondisi bernilai benar, hasil1 dikembalikan. Jika tidak, null dikembalikan.

IF(kondisi, hasil1, hasil2)

Jika kondisi bernilai benar, hasil1 dikembalikan. Jika tidak, hasil2 dikembalikan.

COALESCE expression

COALESCE(ekspresi1, ekspresi2, ekspresi3...)

Mengembalikan nilai non-null pertama dari beberapa ekspresi.

NULLIF expression

NULLIF(ekspresi1, ekspresi2)

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

×

TRY expression

TRY(ekspresi)

Menangkap kesalahan yang terjadi selama pemanggilan ekspresi dan memastikan bahwa Simple Log Service dapat terus melakukan query dan menganalisis data meskipun terjadi kesalahan.

CASE WHEN expression

Ekspresi CASE WHEN digunakan untuk mengklasifikasikan data.

Sintaks

CASE WHEN kondisi1 THEN hasil1
     [WHEN kondisi2 THEN hasil2]
     [ELSE hasil3]
END

Parameter

Parameter

Deskripsi

kondisi

Nilai parameter ini adalah ekspresi kondisional.

hasil1

Hasil yang dikembalikan.

Contoh

  • Contoh 1: Ekstrak informasi browser dari nilai bidang http_user_agent. Kemudian, klasifikasikan informasi tersebut ke dalam Chrome, Safari, dan jenis tidak dikenal, lalu hitung jumlah tampilan halaman (PV) untuk ketiga 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 Analisiscase when

  • Contoh 2: Kueri distribusi permintaan yang dikirim pada titik 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 Analisiscase when

IF expression

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

Sintaks

  • Jika kondisi bernilai benar, hasil1 dikembalikan. Jika tidak, null dikembalikan.

    IF(kondisi, hasil1)
  • Jika kondisi bernilai benar, hasil1 dikembalikan. Jika tidak, hasil2 dikembalikan.

    IF(kondisi, hasil1, hasil2)

Parameter

Parameter

Deskripsi

kondisi

Nilai parameter ini adalah ekspresi kondisional.

hasil

Hasil yang dikembalikan.

Contoh

Hitung proporsi permintaan dengan kode status 200 terhadap semua permintaan.

  • Pernyataan Kueri

    * |
    SELECT
      sum(IF(status = 200, 1, 0)) * 1.0 / count(*) AS status_200_percentag
  • Hasil Kueri dan AnalisisIF语法

COALESCE expression

Ekspresi COALESCE mengembalikan nilai non-null pertama dari beberapa ekspresi.

Sintaks

COALESCE(ekspresi1, ekspresi2, ekspresi3...)

Parameter

Parameter

Deskripsi

ekspresi

Nilai parameter ini adalah ekspresi dari tipe sembarang.

Contoh

Hitung rasio pengeluaran hari sebelumnya terhadap pengeluaran hari yang sama di bulan sebelumnya.

  • Pernyataan Kueri

    * |
    SELECT
      compare("Pengeluaran hari sebelumnya", 604800) AS diff
    FROM  (
        SELECT
          COALESCE(sum(PretaxAmount), 0) AS "Pengeluaran hari sebelumnya"
        FROM log
      )
  • Hasil Kueri dan Analisiscoalesce语法

    • Nilai 6.514.393.413,0 menunjukkan pengeluaran hari sebelumnya.

    • Nilai 19.578.267.596,0 menunjukkan pengeluaran hari yang sama di bulan sebelumnya.

    • Nilai 0,33273594719539659 menunjukkan rasio pengeluaran hari sebelumnya terhadap pengeluaran hari yang sama di bulan sebelumnya.

NULLIF expression

Ekspresi NULLIF mengevaluasi apakah nilai dua ekspresi sama. Jika nilainya sama, null dikembalikan. Jika tidak, nilai dari ekspresi pertama dikembalikan.

Sintaks

NULLIF(ekspresi1, ekspresi2)

Parameter

Parameter

Deskripsi

ekspresi

Nilai parameter ini adalah ekspresi skalar yang valid.

Contoh

Evaluasi apakah nilai bidang client_ip dan host sama. Jika nilainya berbeda, nilai bidang client_ip dikembalikan.

  • Pernyataan Kueri

    * | SELECT NULLIF(client_ip,host)
  • Hasil Kueri dan Analisisnullif语法

TRY expression

Ekspresi TRY menangkap kesalahan yang terjadi selama pemanggilan ekspresi dan memastikan bahwa Simple Log Service dapat terus melakukan query dan menganalisis data meskipun terjadi kesalahan.

Sintaks

TRY(ekspresi)

Parameter

Parameter

Deskripsi

ekspresi

Nilai parameter ini adalah ekspresi dari tipe sembarang.

Contoh

Jika terjadi kesalahan saat pemanggilan ekspresi regexp_extract, ekspresi TRY menangkap kesalahan dan Simple Log Service terus melakukan query dan menganalisis data. Hasil kueri dan analisis dikembalikan.

  • Pernyataan Kueri

    * |
    SELECT
      TRY(regexp_extract(request_uri, '.*\/(file.*)', 1)) AS file,
      count(*) AS count
    GROUP BY
      file
  • Hasil Kueri dan Analisistry语法