All Products
Search
Document Center

Simple Log Service:Fungsi agregat

Last Updated:Jun 22, 2026

Fungsi agregat menghitung satu nilai dari sekumpulan nilai. Topik ini menjelaskan sintaks dasar fungsi agregat dan memberikan contoh penggunaannya.

Simple Log Service mendukung fungsi agregat berikut.

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

Parameter

Sintaks

Deskripsi

Dukungan SQL

Dukungan SPL

fungsi sembarang

arbitrary(x)

Mengembalikan nilai non-NULL sembarang dari x.

×

fungsi avg

avg(x)

Menghitung rata-rata aritmetika dari x.

×

fungsi bitwise_and_agg

bitwise_and_agg(x)

Mengembalikan hasil operasi AND bitwise dari semua nilai dalam x.

×

fungsi bitwise_or_agg

bitwise_or_agg(x)

Mengembalikan hasil operasi OR bitwise dari semua nilai dalam x.

×

fungsi bool_and

bool_and(boolean expression)

Mengembalikan true jika semua log memenuhi kondisi.

Fungsi bool_and setara dengan fungsi every.

×

fungsi bool_or

bool_or(boolean expression)

Mengembalikan true jika setidaknya satu log memenuhi kondisi.

×

fungsi checksum

checksum(x)

Menghitung checksum dari x.

×

fungsi count

count(*)

Mengembalikan jumlah total log.

×

count(1)

Mengembalikan jumlah total log, yang setara dengan count(*).

×

count(x)

Mengembalikan jumlah log di mana nilai x bukan NULL.

×

fungsi count_if

count_if(boolean expression)

Mengembalikan jumlah log yang memenuhi kondisi tertentu.

×

setiap fungsi

every(boolean expression)

Mengembalikan true jika semua log memenuhi kondisi.

Fungsi every setara dengan fungsi bool_and.

×

fungsi geometric_mean

geometric_mean(x)

Menghitung rata-rata geometrik dari x.

×

fungsi kurtosis

kurtosis(x)

Menghitung kurtosis dari x.

×

fungsi map_union

map_union(x)

Mengembalikan gabungan (union) peta dalam satu kolom. Jika suatu kunci ada di beberapa peta, nilai sembarang untuk kunci tersebut dipilih.

×

fungsi max

max(x)

Mengembalikan nilai maksimum dalam x.

×

max(x, n)

Mengembalikan n nilai terbesar dalam x sebagai array.

×

fungsi max_by

max_by(x, y)

Mengembalikan nilai x yang terkait dengan nilai maksimum y.

×

max_by(x, y, n)

Mengembalikan array nilai x yang sesuai dengan n nilai terbesar dari y.

×

fungsi min

min(x)

Mengembalikan nilai minimum dalam x.

×

min(x, n)

Mengembalikan n nilai terkecil dalam x sebagai array.

×

fungsi min_by

min_by(x, y)

Mengembalikan nilai x yang terkait dengan nilai minimum y.

×

min_by(x, y, n)

Mengembalikan array nilai x yang sesuai dengan n nilai terkecil dari y.

×

fungsi skewness

skewness(x)

Menghitung skewness dari x.

×

fungsi sum

sum(x)

Menghitung jumlah dari x.

×

Fungsi sembarang

Fungsi sembarang mengembalikan nilai non-null acak dari ekspresi x.

Sintaks

arbitrary(x)

Parameter

Parameter

Deskripsi

x

Ekspresi dengan tipe data apa pun.

Tipe kembalian

Sesuai dengan tipe data ekspresi input.

Contoh

Mengembalikan nilai non-null acak dari field request_method.

  • Pernyataan kueri (Debug)

    * | SELECT
      arbitrary(request_method) AS request_method
  • Kolom request_method mengembalikan nilai seperti GET.

Fungsi avg

Fungsi avg mengembalikan rata-rata nilai dalam x.

Sintaks

avg(x)

Parameter

Parameter

Deskripsi

x

Kolom atau ekspresi yang akan dirata-ratakan. Nilainya harus bertipe double, bigint, decimal, atau real.

Tipe nilai kembalian

Nilai bertipe double.

Contoh

Mengembalikan proyek dengan latensi rata-rata lebih dari 1.000 mikrodetik.

  • Pernyataan kueri (Debug)

    method: PostLogstoreLogs | SELECT
      avg(latency) AS avg_latency,
      Project
    GROUP BY
      Project
    HAVING
      avg_latency > 1000
  • Kueri mengembalikan catatan dengan avg_latency sebesar 3223.4162679425835 dan nama Project yang dimulai dengan datalab-14.

Fungsi bitwise_and_agg

Fungsi bitwise_and_agg mengembalikan hasil operasi AND bitwise dari semua nilai dalam x.

Sintaks

bitwise_and_agg(x)

Parameter

Parameter

Deskripsi

x

Nilai bigint.

Tipe nilai kembalian

Nilai bigint.

Contoh

Menjalankan operasi AND bitwise pada semua nilai dalam field status.

  • Pernyataan kueri (Debug)

    * | SELECT
      bitwise_and_agg(status)
  • Kueri mengembalikan satu kolom bernama _col0 dengan nilai 0.

Fungsi bitwise_or_agg

Fungsi bitwise_or_agg mengembalikan hasil operasi OR bitwise dari semua nilai dalam x.

Sintaks

bitwise_or_agg(x)

Parameter

Parameter

Deskripsi

x

Nilai bigint.

Tipe kembalian

Nilai bigint.

Contoh

Menjalankan operasi OR bitwise pada semua nilai field request_time.

  • Pernyataan kueri dan analisis (Debug)

    * | SELECT
      bitwise_or_agg(request_length)
  • Hasil kueri dan analisis dikembalikan sebagai satu kolom _col0, dengan nilai 16383.

Fungsi bool_and

Fungsi bool_and mengembalikan true jika ekspresi boolean bernilai true untuk semua log. Fungsi ini setara dengan fungsi every.

Sintaks

bool_and(boolean expression)

Parameter

Parameter

Deskripsi

boolean expression

Ekspresi boolean yang dievaluasi.

Tipe nilai kembalian

boolean

Contoh

Contoh ini memeriksa apakah nilai request_time untuk semua log kurang dari 100.

  • Pernyataan kueri dan analisis (Debug)

    * | SELECT
      bool_and(request_time < 100)
  • Hasil kueri dan analisis adalah true, yang menunjukkan bahwa nilai request_time semua log kurang dari 100.

Fungsi bool_or

Fungsi bool_or mengembalikan true jika ekspresi boolean bernilai true untuk setidaknya satu log.

Sintaks

bool_or(boolean expression)

Parameter

Parameter

Deskripsi

boolean expression

Ekspresi boolean.

Tipe nilai kembalian

boolean

Contoh

Untuk memeriksa apakah request_time untuk salah satu log kurang dari 20:

  • Pernyataan kueri dan analisis (Debug)

    * | SELECT
      bool_or(request_time < 20)
  • Hasil kueri dan analisis mengembalikan true untuk kolom _col0, yang menunjukkan bahwa log berisi catatan di mana request_time kurang dari 20.

Fungsi checksum

Fungsi checksum menghitung checksum dari x.

Sintaks

checksum(x)

Parameter

Parameter

Deskripsi

x

Ekspresi dengan tipe data apa pun.

Tipe nilai kembalian

String yang dikodekan Base64.

Contoh

  • Pernyataan kueri (Debug)

    * | SELECT
      checksum(request_method) AS request_method
  • Checksum dari field request_method adalah NDXFdgnd8GE=.

Fungsi count

Fungsi count menghitung jumlah log.

Sintaks

  • Menghitung jumlah total log.

    count(*)
  • Mengembalikan jumlah total log. Ini setara dengan count(*).

    count(1)
  • Menghitung log di mana x bukan NULL.

    count(x)

Parameter

Parameter

Deskripsi

x

Ekspresi dengan tipe data apa pun.

Tipe nilai kembalian

Bilangan bulat.

Contoh

  • Contoh 1: Menghitung jumlah tampilan halaman website.

    • Pernyataan kueri (Debug)

      * | SELECT
        count(*) AS PV
    • Hasil kueri dan analisis: Tabel hasil berisi kolom PV dengan nilai 2009.

  • Contoh 2: Menghitung log di mana field request_method tidak null.

    • Pernyataan kueri (Debug)

      * | SELECT
        count(request_method) AS count
    • Hasil kueri dan analisis: Tabel hasil berisi kolom count dengan nilai 1954.

Fungsi count_if

Fungsi count_if menghitung jumlah log yang memenuhi kondisi tertentu.

Sintaks

count_if(boolean expression)

Parameter

Parameter

Deskripsi

boolean expression

Kondisi yang dievaluasi.

Tipe kembalian

Jumlah log yang memenuhi kondisi.

Contoh

Menghitung jumlah entri log di mana nilai field request_uri diakhiri dengan file-0.

  • Pernyataan kueri dan analisis (debug)

    * | SELECT
      count_if(request_uri like '%file-0') AS count
  • Hasil kueri dan analisis

Fungsi geometric_mean

Fungsi geometric_mean menghitung rata-rata geometrik dari x.

Sintaks

geometric_mean(x)

Parameter

Parameter

Deskripsi

x

Nilai bertipe double, bigint, atau real.

Tipe nilai kembalian

Mengembalikan nilai double.

Contoh

Menghitung rata-rata geometrik waktu permintaan.

  • Pernyataan kueri dan analisis (Debug)

    * | SELECT
      geometric_mean(request_time) AS time
  • Hasil kueri dan analisis menunjukkan kolom time dengan nilai 39.443123208882308.

Setiap fungsi

Fungsi every mengembalikan true jika ekspresi boolean bernilai true untuk semua log. Fungsi ini setara dengan fungsi bool_and.

Sintaks

every(boolean expression)

Parameter

Parameter

Deskripsi

boolean expression

Ekspresi yang mengembalikan nilai boolean untuk setiap log.

Tipe nilai kembalian

Mengembalikan nilai boolean.

Contoh

Contoh ini memeriksa apakah nilai request_time dalam setiap log kurang dari 100.

  • Pernyataan kueri dan analisis (Debug)

    * | SELECT
      every(request_time < 100)
  • Hasil kueri dan analisis

Fungsi kurtosis

Menghitung kurtosis dari x.

Sintaks

kurtosis(x)

Parameter

Parameter

Deskripsi

x

Nilainya harus bertipe double atau bigint.

Tipe kembalian

double

Contoh

Menghitung kurtosis dari field request_time.

  • Pernyataan kueri (Debug)

    *| SELECT
      kurtosis(request_time)
  • Hasil kueri dan analisis

    kurtosis
    -3.0006998250171186

Fungsi map_union

Fungsi map_union mengembalikan gabungan semua peta dalam satu kolom. Jika kunci yang sama ada di beberapa peta input, nilai untuk kunci tersebut dalam peta hasil dipilih secara non-deterministik dari salah satu input.

Sintaks

map_union(x)

Parameter

Parameter

Deskripsi

x

Kolom bertipe map.

Tipe nilai kembalian

Mengembalikan satu nilai bertipe map.

Contoh

Contoh ini menggabungkan nilai peta dari field etl_context menjadi satu peta.

  • Field contoh

    etl_context: {
     project:"datalab-148****6461-cn-chengdu"
     logstore:"internal-etl-log"
     consumer_group:"etl-83****4d1965"
     consumer:"etl-b2d40ed****c8d6-291294"
     shard_id:"0" }
  • Pernyataan kueri

    * | SELECT
      map_union(
        try_cast(json_parse(etl_context) AS map(varchar, varchar))
      )
  • Hasil kueri dan analisis: Setelah pernyataan kueri dijalankan, kolom hasil diberi nama _col0, dan nilainya adalah peta pasangan kunci-nilai yang diurai dari etl_context, berisi field seperti consumer_group, shard_id, project, logstore, dan consumer, serta nilai-nilai yang sesuai.

Fungsi max

Fungsi max mengembalikan nilai maksimum dari x.

Sintaks

  • Mengembalikan nilai maksimum dari x.

    max(x)
  • Mengembalikan array berisi n nilai terbesar dari x.

    max(x, n)

Parameter

Parameter

Deskripsi

x

Ekspresi apa pun.

n

Bilangan bulat positif.

Tipe nilai kembalian

Sama dengan tipe data ekspresi input.

Contoh

  • Contoh 1: Menemukan waktu permintaan maksimum.

    • Pernyataan kueri (Debug)

      * | SELECT
        max(request_time) AS max_request_time
    • Hasil kueri dan analisis: Nilai max_request_time adalah 80.0.

  • Contoh 2: Menemukan 10 waktu permintaan teratas.

    • Pernyataan kueri (Debug)

      * | SELECT
        max(request_time, 10) AS "top 10"
    • Hasil kueri dan analisis: Kueri mengembalikan [80.0,80.0,80.0,80.0,80.0,79.0,79.0,79.0,78.0,78.0] untuk kolom top 10. Array berisi 10 nilai request_time terbesar dalam urutan menurun.

Fungsi max_by

Fungsi max_by mendukung dua sintaks berikut.

Sintaks

  • Mengembalikan nilai x untuk nilai maksimum y.

    max_by(x, y)
  • Mengembalikan array nilai x untuk n nilai terbesar dari y.

    max_by(x, y, n)

Parameter

Parameter

Deskripsi

x

Ekspresi dengan tipe data apa pun.

y

Ekspresi dengan tipe data apa pun.

n

Bilangan bulat positif.

Tipe nilai kembalian

Sama dengan tipe data x.

Contoh

  • Contoh 1: Menemukan waktu pesanan dengan jumlah sebelum pajak tertinggi.

    • Pernyataan kueri dan analisis

      * | SELECT
        max_by(UsageEndTime, PretaxAmount) AS time
    • Hasil kueri dan analisis: Kolom time mengembalikan 1625731025.

  • Contoh 2: Menemukan metode permintaan untuk tiga permintaan dengan waktu permintaan terlama.

    • Pernyataan kueri dan analisis (debug)

      * | SELECT
        max_by(request_method, request_time, 3) AS method
    • Hasil kueri dan analisis: Nilai method adalah ["POST","POST","POST"], yang menunjukkan bahwa metode untuk tiga permintaan terbaru yang diurutkan berdasarkan request_time semuanya POST.

Fungsi min

Fungsi min mengembalikan nilai minimum dalam x.

Sintaks

  • Mengembalikan nilai minimum dalam x.

    min(x)
  • Mengembalikan n nilai terkecil dalam x sebagai array.

    min(x,n)

Parameter

Parameter

Deskripsi

x

Ekspresi dengan tipe data apa pun.

n

Bilangan bulat positif.

Tipe nilai kembalian

Sama dengan tipe data ekspresi input.

Contoh

  • Contoh 1: Menemukan waktu permintaan minimum.

    • Pernyataan kueri dan analisis (Debug)

      * | SELECT
        min(request_time) AS min_request_time
    • Hasil kueri dan analisis mengembalikan kolom bernama min_request_time dengan nilai 10.0.

  • Contoh 2: Menemukan 10 waktu permintaan terkecil.

    • Pernyataan kueri dan analisis (Debug)

      * | SELECT
        min(request_time, 10)
    • Hasil kueri dan analisis mengembalikan kolom bernama _col0 dengan nilai [10.0,10.0,10.0,10.0,10.0,11.0,12.0,12.0,13.0,13.0].

Fungsi min_by

Fungsi min_by memiliki dua sintaks berikut.

Sintaks

  • Mengembalikan nilai x untuk nilai minimum y.

    min_by(x, y)
  • Mengembalikan array nilai x untuk n nilai terkecil dari y.

    min_by(x, y, n)

Parameter

Parameter

Deskripsi

x

Ekspresi dengan tipe data apa pun.

y

Ekspresi dengan tipe data apa pun.

n

Bilangan bulat positif.

Tipe nilai kembalian

Sama dengan tipe data parameter x.

Contoh

  • Contoh 1: Menemukan metode permintaan untuk permintaan dengan waktu permintaan minimum.

    • Pernyataan kueri dan analisis (Debug)

      * | SELECT
        min_by(request_method, request_time) AS method
    • Hasil kueri dan analisis: Kolom method mengembalikan GET.

  • Contoh 2: Menemukan metode permintaan untuk tiga permintaan dengan waktu permintaan terkecil.

    • Pernyataan kueri dan analisis (Debug)

      * | SELECT
        min_by(request_method, request_time, 3) AS method
    • Hasil kueri dan analisis.

Fungsi skewness

Fungsi skewness menghitung skewness dari ekspresi x.

Sintaks

skewness(x)

Parameter

Parameter

Deskripsi

x

Ekspresi yang mengevaluasi ke tipe double atau bigint.

Tipe nilai kembalian

double

Contoh

Menghitung skewness dari nilai dalam field request_time.

  • Pernyataan kueri dan analisis (Debug)

    *| SELECT
      skewness(request_time) AS skewness
  • Hasil kueri dan analisis: Nilai skewness adalah 0.00042944441602043965.

Fungsi sum

Fungsi sum menjumlahkan nilai dalam ekspresi x.

Sintaks

sum(x)

Parameter

Parameter

Deskripsi

x

Ekspresi yang mengevaluasi ke tipe double, bigint, decimal, atau real.

Tipe nilai kembalian

Sama dengan tipe data ekspresi input.

Contoh

Menghitung traffic harian sebuah website.

  • Pernyataan kueri dan analisis (debug)

    * | SELECT
      date_trunc('day', __time__) AS time,
      sum(body_bytes_sent) AS body_bytes_sent
    GROUP BY
      time
    ORDER BY
      time
  • Hasil kueri dan analisis: Setelah pernyataan kueri dan analisis dijalankan, tabel hasil statistik yang diagregasi per hari dikembalikan, berisi jumlah body_bytes_sent untuk total lima hari dari 2023-09-19 hingga 2023-09-23.