全部产品
Search
文档中心

Simple Log Service:Operator Perbandingan

更新时间:Jul 02, 2025

Operator perbandingan digunakan untuk membandingkan nilai parameter dengan tipe data berikut: double, bigint, varchar, timestamp, dan date. Topik ini menjelaskan sintaksis serta memberikan contoh penggunaan operator perbandingan.

Ikhtisar operator perbandingan

Tabel berikut menjelaskan operator perbandingan yang didukung oleh Simple Log Service.

Penting Jika Anda ingin menggunakan string dalam pernyataan analitik, apit string dengan tanda kutip tunggal (''). String tanpa tanda kutip atau yang diapit dengan tanda kutip ganda ("") menunjukkan nama bidang atau kolom. Contohnya, 'status' adalah string status, sedangkan status atau "status" menunjukkan bidang log status.

Operator

Sintaksis

Deskripsi

Didukung di SQL

Didukung di SPL

Operator relasional

x < y

Jika x kurang dari y, true dikembalikan.

x > y

Jika x lebih besar dari y, true dikembalikan.

x <= y

Jika x kurang dari atau sama dengan y, true dikembalikan.

x >= y

Jika x lebih besar dari atau sama dengan y, true dikembalikan.

x = y

Jika x sama dengan y, true dikembalikan.

x <> y

Jika x tidak sama dengan y, true dikembalikan.

x != y

Jika x tidak sama dengan y, true dikembalikan.

Operator ALL

x operator relasional ALL(subquery)

Jika x memenuhi semua kondisi, true dikembalikan.

×

Operator ANY

x operator relasional ANY(subquery)

Jika x memenuhi salah satu kondisi, true dikembalikan.

×

Operator BETWEEN

x BETWEEN y AND z

Jika x berada di antara y dan z, true dikembalikan.

Operator DISTINCT

x IS DISTINCT FROM y

Jika x tidak sama dengan y, true dikembalikan.

×

x IS NOT DISTINCT FROM y

Jika x sama dengan y, true dikembalikan.

×

Operator LIKE

x LIKE pola [escape 'karakter_escape']

Mencocokkan pola karakter tertentu dalam string. String bersifat peka huruf besar/kecil.

Operator SOME

x operator relasional SOME(subquery)

Jika x memenuhi salah satu kondisi, true dikembalikan.

×

Operator GREATEST

GREATEST(x, y...)

Mendapatkan nilai yang lebih besar dari x dan y.

×

Operator LEAST

LEAST(x, y...)

Mendapatkan nilai yang lebih kecil dari x dan y.

×

Operator NULL

x IS NULL

Jika x adalah null, true dikembalikan.

x IS NOT NULL

Jika x bukan null, true dikembalikan.

Operator Relasional

Operator relasional membandingkan x dan y. Jika kondisi terpenuhi, nilai true dikembalikan.

Sintaksis

Sintaksis

Deskripsi

x < y

x kurang dari y.

x > y

x lebih besar dari y.

x <= y

x kurang dari atau sama dengan y.

x >= y

x lebih besar dari atau sama dengan y.

x = y

x sama dengan y.

x <> y

x tidak sama dengan y.

x != y

x tidak sama dengan y.

Parameter

Parameter

Deskripsi

x

Nilai parameter ini adalah tipe data yang mendukung perbandingan.

y

Nilai parameter ini adalah tipe data yang mendukung perbandingan.

Tipe Nilai Kembali

Boolean.

Contoh

  • Contoh 1: Kueri log dari hari sebelumnya.

    • Pernyataan kueri

      * |
      SELECT
        *
      FROM  log
      WHERE
        __time__ < to_unixtime(current_date)
        AND __time__ > to_unixtime(date_add('day', -1, current_date))
    • Hasil kueri dan analisiscurrent_date

  • Contoh 2: Perusahaan e-commerce A menggunakan bidang mobile dan client_ip dalam log akses untuk menemukan pelanggan yang nomor teleponnya berasal dari tempat berbeda dengan alamat IP yang digunakan untuk mengakses situs web perusahaan.

    • Bidang sampel

      mobile:1881111****
      client_ip:192.168.2.0
    • Pernyataan kueri

      * |
      SELECT
        mobile,
        client_ip,
        count(*) AS PV
      WHERE
        mobile_city(mobile) != ip_to_city(client_ip)
        AND ip_to_city(client_ip) != ''
      GROUP BY
        client_ip,
        mobile
      ORDER BY
        PV DESC
    • Hasil kueri dan analisismobile_city

Operator ALL

Operator ALL menentukan apakah x memenuhi semua kondisi. Jika semua kondisi terpenuhi, nilai true dikembalikan.

Sintaksis

x operator relasional ALL(subquery)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini adalah tipe data yang mendukung perbandingan.

Operator relasional

Nilai parameter ini adalah operator relasional. Nilai valid: < > <= >= = <> !=

Penting

Operator ALL harus mengikuti operator relasional. Operator relasional: < > <= >= = <> !=

subquery

Nilai parameter ini adalah subkueri SQL.

Tipe Nilai Kembali

Boolean.

Contoh

Periksa apakah setiap permintaan terkait instance i-01 direspons dengan kode status 200.

  • Bidang sampel

    instance_id:i-01
    status:200
  • Pernyataan kueri

    * | select 200 = ALL(select status where instance_id='i-01')
  • Hasil kueri dan analisisall

Operator ANY

Operator ANY menentukan apakah x memenuhi salah satu kondisi. Jika salah satu kondisi terpenuhi, nilai true dikembalikan.

Sintaksis

x operator relasional ANY(subquery)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini adalah tipe data yang mendukung perbandingan.

Operator relasional

Nilai parameter ini adalah operator relasional. Nilai valid: < > <= >= = <> !=

Penting

Operator ANY harus mengikuti operator relasional. Operator relasional: < > <= >= = <> !=

subquery

Nilai parameter ini adalah subkueri SQL.

Tipe Nilai Kembali

Boolean.

Contoh

Periksa apakah ada permintaan terkait instance i-01 yang direspons dengan kode status 200.

  • Bidang sampel

    instance_id:i-01
    status:200
  • Pernyataan kueri

    * | SELECT 200 = ANY(SELECT status WHERE instance_id='i-01')
  • Hasil kueri dan analisisany

Operator BETWEEN

Operator BETWEEN menentukan apakah x berada di antara y dan z. Jika kondisi terpenuhi, nilai true dikembalikan. y dan z menentukan interval tertutup.

Sintaksis

x BETWEEN y AND z

Parameter

Parameter

Deskripsi

x

Nilai parameter ini adalah tipe data yang mendukung perbandingan.

y

Nilai parameter ini adalah tipe data yang mendukung perbandingan.

z

Nilai parameter ini adalah tipe data yang mendukung perbandingan.

Penting
  • Tipe data dari x, y, dan z harus sama.

  • Jika nilai dari x, y, atau z mengandung null, nilai null dikembalikan.

Tipe Nilai Kembali

Boolean.

Contoh

  • Contoh 1: Tentukan apakah nilai bidang status berada dalam rentang [200,299].

    • Pernyataan kueri

      * | SELECT status BETWEEN 200 AND 299
    • Hasil kueri dan analisisBETWEEN

  • Contoh 2: Tentukan jumlah log yang nilainya pada bidang status tidak berada dalam rentang [200,299].

    • Pernyataan kueri

      * | SELECT count(*) AS count FROM log WHERE status NOT BETWEEN 200 AND 299
    • Hasil kueri dan analisisbetween

Operator DISTINCT

Operator DISTINCT menentukan apakah x sama dengan y.

Sintaksis

  • IS DISTINCT FROM: Jika x tidak sama dengan y, nilai true dikembalikan.

    x IS DISTINCT FROM y
  • IS NOT DISTINCT FROM: Jika x sama dengan y, nilai true dikembalikan.

    x IS NOT DISTINCT FROM y

Parameter

Parameter

Deskripsi

x

Nilai parameter ini adalah tipe data yang mendukung perbandingan.

y

Nilai parameter ini adalah tipe data yang mendukung perbandingan.

Berbeda dengan operator = dan <>, operator DISTINCT dapat digunakan untuk melakukan perbandingan pada nilai null.

x

y

x = y

x <> y

x IS DISTINCT FROM y

x IS NOT DISTINCT FROM y

1

1

true

false

false

true

1

2

false

true

true

false

1

null

null

null

true

false

null

null

null

null

false

true

Tipe Nilai Kembali

Boolean.

Contoh

Bandingkan 0 dengan null.

  • Pernyataan kueri

    * | select 0 IS DISTINCT FROM null
  • Hasil kueri dan analisisdistinct

Operator LIKE

Operator LIKE mencocokkan pola karakter tertentu dalam string. Pencocokan bersifat peka huruf besar/kecil.

Sintaksis

x LIKE pola [escape 'karakter_escape']

Parameter

Parameter

Deskripsi

x

Nilai parameter ini adalah tipe data yang mendukung perbandingan.

pola

Nilai parameter ini adalah pola karakter, yang dapat berisi string atau karakter wildcard. Karakter wildcard yang didukung adalah sebagai berikut:

  • Tanda persen (%): menunjukkan sejumlah karakter sembarang.

  • Garis bawah (_): menunjukkan satu karakter tunggal.

karakter_escape

Nilai parameter ini adalah ekspresi karakter yang digunakan untuk meloloskan karakter wildcard dalam pola karakter.

Catatan

Operator LIKE digunakan untuk kueri log berdasarkan pencocokan tepat. Untuk informasi lebih lanjut, lihat Bagaimana cara saya menanyakan log menggunakan pencocokan tepat?

Tipe Nilai Kembali

Boolean.

Contoh

SQL

  • Contoh 1: Kueri log yang nilainya pada bidang request_uri diakhiri dengan file-8 atau file-6.

    • Bidang sampel

      request_uri:/request/path-2/file-6
    • Pernyataan kueri

      *|SELECT * WHERE request_uri LIKE '%file-8' OR request_uri LIKE '%file-6'
    • Hasil kueri dan analisisOR

  • Contoh 2: Periksa apakah nilai bidang request_uri diakhiri dengan file-6.

    • Bidang sampel

      request_uri:/request/path-2/file-6
    • Pernyataan kueri

      * | SELECT request_uri LIKE '%file-6'
    • Hasil kueri dan analisislike

SPL

  • Contoh 1: Kueri log yang nilainya pada bidang request_uri diakhiri dengan file-8 atau file-6.

    • Bidang sampel

request_uri:/request/path-2/file-6
  • Pernyataan SPL

*|WHERE request_uri LIKE '%file-8' OR request_uri LIKE '%file-6'
  • Hasil SPL

image.png

  • Contoh 2: Periksa apakah nilai bidang request_uri diakhiri dengan file-6.

    • Bidang sampel

request_uri:/request/path-2/file-6
  • Pernyataan SPL

* | extend a = request_uri LIKE '%file-6'
  • Hasil SPL

image.png

Operator SOME

Operator SOME menentukan apakah x memenuhi salah satu kondisi. Jika salah satu kondisi terpenuhi, nilai true dikembalikan.

Sintaksis

x operator relasional SOME(subquery)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini adalah tipe data yang mendukung perbandingan.

Operator relasional

Nilai parameter ini adalah operator relasional. Nilai valid: < > <= >= = <> !=

Penting

Operator SOME harus mengikuti operator relasional. Operator relasional: < > <= >= = <> !=

subquery

Nilai parameter ini adalah subkueri SQL.

Tipe Nilai Kembali

Boolean.

Contoh

Periksa apakah ada permintaan terkait instance i-01 yang diproses kurang dari 20 detik.

  • Bidang sampel

    instance_id:i-01
    request_time:16
  • Pernyataan kueri

    * | SELECT 20 > SOME(SELECT request_time WHERE instance_id='i-01')
  • Hasil kueri dan analisisany

Operator GREATEST

Operator GREATEST mendapatkan nilai yang lebih besar antara x dan y.

Catatan

Operator GREATEST digunakan untuk perbandingan horizontal, sedangkan fungsi max digunakan untuk perbandingan vertikal.

Sintaksis

GREATEST(x, y...)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini adalah tipe data yang mendukung perbandingan.

y

Nilai parameter ini adalah tipe data yang mendukung perbandingan.

Tipe Nilai Kembali

Double.

Contoh

Bandingkan nilai bidang request_time dan status dalam log yang sama untuk mendapatkan nilai yang lebih besar.

  • Bidang sampel

    request_time:38
    status:200
  • Pernyataan kueri

    * |  SELECT GREATEST(request_time,status)
  • Hasil kueri dan analisisgreatest

Operator LEAST

Operator LEAST mendapatkan nilai yang lebih kecil antara x dan y.

Catatan

Operator LEAST digunakan untuk perbandingan horizontal, sedangkan fungsi min digunakan untuk perbandingan vertikal.

Sintaksis

LEAST(x, y...)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini adalah tipe data yang mendukung perbandingan.

y

Nilai parameter ini adalah tipe data yang mendukung perbandingan.

Tipe Nilai Kembali

Double.

Contoh

Bandingkan nilai bidang request_time dan status dalam log yang sama untuk mendapatkan nilai yang lebih kecil.

  • Bidang sampel

    request_time:77
    status:200
  • Pernyataan kueri

    * |  SELECT LEAST(request_time,status)
  • Hasil kueri dan analisisleast

Operator NULL

Operator NULL menentukan apakah x adalah null.

Sintaksis

  • IS NULL: Jika x adalah null, nilai true dikembalikan.

    x IS NULL
  • IS NOT NULL: Jika x bukan null, nilai true dikembalikan.

    x IS NOT NULL

Parameter

Parameter

Deskripsi

x

Nilai parameter ini adalah tipe data yang mendukung perbandingan.

Tipe Nilai Kembali

Boolean.

Contoh

  • Contoh 1: Tentukan apakah nilai bidang status adalah null.

    • Pernyataan kueri

      * | select status IS NULL
    • Hasil kueri dan analisisis null

  • Contoh 2: Tentukan jumlah log yang bidang status-nya tidak kosong.

    • Pernyataan kueri

      * | SELECT count(*) AS count FROM log WHERE status IS NOT NULL
    • Hasil kueri dan analisisis not null