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.
Operator | Sintaksis | Deskripsi | Didukung di SQL | Didukung di SPL |
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. | √ | √ | |
x operator relasional ALL(subquery) | Jika x memenuhi semua kondisi, true dikembalikan. | √ | × | |
x operator relasional ANY(subquery) | Jika x memenuhi salah satu kondisi, true dikembalikan. | √ | × | |
x BETWEEN y AND z | Jika x berada di antara y dan z, true dikembalikan. | √ | √ | |
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. | √ | × | |
x LIKE pola [escape 'karakter_escape'] | Mencocokkan pola karakter tertentu dalam string. String bersifat peka huruf besar/kecil. | √ | √ | |
x operator relasional SOME(subquery) | Jika x memenuhi salah satu kondisi, true dikembalikan. | √ | × | |
GREATEST(x, y...) | Mendapatkan nilai yang lebih besar dari x dan y. | √ | × | |
LEAST(x, y...) | Mendapatkan nilai yang lebih kecil dari x dan y. | √ | × | |
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 analisis

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.0Pernyataan 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 DESCHasil kueri dan analisis

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:200Pernyataan kueri
* | select 200 = ALL(select status where instance_id='i-01')Hasil kueri dan analisis

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:200Pernyataan kueri
* | SELECT 200 = ANY(SELECT status WHERE instance_id='i-01')Hasil kueri dan analisis

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 zParameter
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. |
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 299Hasil kueri dan analisis

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 299Hasil kueri dan analisis

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 yIS 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 nullHasil kueri dan analisis

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:
|
karakter_escape | Nilai parameter ini adalah ekspresi karakter yang digunakan untuk meloloskan karakter wildcard dalam pola karakter. |
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-6Pernyataan kueri
*|SELECT * WHERE request_uri LIKE '%file-8' OR request_uri LIKE '%file-6'Hasil kueri dan analisis

Contoh 2: Periksa apakah nilai bidang request_uri diakhiri dengan file-6.
Bidang sampel
request_uri:/request/path-2/file-6Pernyataan kueri
* | SELECT request_uri LIKE '%file-6'Hasil kueri dan analisis

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-6Pernyataan SPL
*|WHERE request_uri LIKE '%file-8' OR request_uri LIKE '%file-6'Hasil SPL

Contoh 2: Periksa apakah nilai bidang request_uri diakhiri dengan file-6.
Bidang sampel
request_uri:/request/path-2/file-6Pernyataan SPL
* | extend a = request_uri LIKE '%file-6'Hasil SPL

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:16Pernyataan kueri
* | SELECT 20 > SOME(SELECT request_time WHERE instance_id='i-01')Hasil kueri dan analisis

Operator GREATEST
Operator GREATEST mendapatkan nilai yang lebih besar antara x dan y.
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:200Pernyataan kueri
* | SELECT GREATEST(request_time,status)Hasil kueri dan analisis

Operator LEAST
Operator LEAST mendapatkan nilai yang lebih kecil antara x dan y.
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:200Pernyataan kueri
* | SELECT LEAST(request_time,status)Hasil kueri dan analisis

Operator NULL
Operator NULL menentukan apakah x adalah null.
Sintaksis
IS NULL: Jika x adalah null, nilai true dikembalikan.
x IS NULLIS 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 NULLHasil kueri dan analisis

Contoh 2: Tentukan jumlah log yang bidang status-nya tidak kosong.
Pernyataan kueri
* | SELECT count(*) AS count FROM log WHERE status IS NOT NULLHasil kueri dan analisis
