全部产品
Search
文档中心

Simple Log Service:Fungsi agregat

更新时间:Jun 26, 2025

Fungsi agregat menghitung nilai dari sebuah bidang dan mengembalikan satu nilai tunggal. Topik ini menjelaskan sintaksis fungsi agregat serta memberikan contoh penggunaannya.

Tabel berikut menjelaskan fungsi agregat 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.

Fungsi

Sintaksis

Deskripsi

Didukung di SQL

Didukung di SPL

fungsi sembarang

arbitrary(x)

Mengembalikan nilai acak, bukan null dari bidang x.

×

fungsi avg

avg(x)

Menghitung rata-rata dari nilai-nilai bidang x.

×

fungsi bitwise_and_agg

bitwise_and_agg(x)

Mengembalikan hasil operasi AND bitwise pada nilai-nilai bidang x.

×

fungsi bitwise_or_agg

bitwise_or_agg(x)

Mengembalikan hasil operasi OR bitwise pada nilai-nilai bidang x.

×

fungsi bool_and

bool_and(ekspresi boolean)

Memeriksa apakah semua log memenuhi kondisi tertentu. Jika ya, fungsi mengembalikan true.

Fungsi ini setara dengan fungsi every.

×

fungsi bool_or

bool_or(ekspresi boolean)

Memeriksa apakah ada log yang memenuhi kondisi tertentu. Jika ya, fungsi mengembalikan true.

×

fungsi checksum

checksum(x)

Menghitung checksum dari nilai-nilai bidang x.

×

fungsi count

count(*)

Menghitung jumlah log.

×

count(1)

Menghitung jumlah log. Fungsi ini setara dengan fungsi count(*).

×

count(x)

Menghitung jumlah log yang nilainya pada bidang x bukan NULL.

×

fungsi count_if

count_if(ekspresi boolean)

Menghitung jumlah log yang memenuhi kondisi tertentu.

×

fungsi every

every(ekspresi boolean)

Memeriksa apakah semua log memenuhi kondisi tertentu. Jika ya, fungsi mengembalikan true.

Fungsi ini setara dengan fungsi bool_and.

×

fungsi geometric_mean

geometric_mean(x)

Menghitung rata-rata geometrik dari nilai-nilai bidang x.

×

fungsi kurtosis

kurtosis(x)

Menghitung kurtosis dari nilai-nilai bidang x.

×

fungsi map_union

map_union(x)

Mengembalikan hasil operasi union pada peta yang ditentukan. Jika suatu kunci ada di beberapa peta input, fungsi secara acak mengembalikan salah satu nilai dari kunci tersebut.

×

fungsi max

max(x)

Mengambil nilai terbesar dari bidang x.

×

max(x, n)

Mengambil n nilai terbesar dari bidang x. Fungsi mengembalikan array.

×

fungsi max_by

max_by(x, y)

Mengambil nilai x yang terkait dengan nilai terbesar dari bidang y.

×

max_by(x, y, n)

Mengambil nilai-nilai x yang terkait dengan n nilai terbesar dari bidang y. Fungsi mengembalikan array.

×

fungsi min

min(x)

Mengambil nilai terkecil dari bidang x.

×

min(x, n)

Mengambil n nilai terkecil dari bidang x. Fungsi mengembalikan array.

×

fungsi min_by

min_by(x, y)

Mengambil nilai x yang terkait dengan nilai terkecil dari bidang y.

×

min_by(x, y, n)

Mengambil nilai-nilai x yang terkait dengan n nilai terkecil dari bidang y. Fungsi mengembalikan array.

×

fungsi skewness

skewness(x)

Menghitung skewness dari nilai-nilai bidang x.

×

fungsi sum

sum(x)

Menghitung jumlah dari nilai-nilai bidang x.

×

fungsi arbitrary

Fungsi arbitrary mengembalikan nilai acak, bukan null, dari bidang x.

Sintaksis

arbitrary(x)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini adalah dari tipe data sembarang.

Tipe nilai kembali

Sama dengan tipe data nilai parameter.

Contoh

Mengembalikan nilai acak, bukan null, dari bidang request_method.

  • Pernyataan query (Debug)

    * | SELECT
      arbitrary(request_method) AS request_method
  • Hasil query dan analisisarbitrary函数

fungsi avg

Fungsi avg menghitung rata-rata nilai-nilai dari bidang x.

Sintaksis

avg(x)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini adalah dari tipe double, bigint, decimal, atau real.

Tipe nilai kembali

Tipe double.

Contoh

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

  • Pernyataan query (Debug)

    method: PostLogstoreLogs | SELECT
      avg(latency) AS avg_latency,
      Project
    GROUP BY
      Project
    HAVING
      avg_latency > 1000
  • Hasil query dan analisisavg函数

fungsi bitwise_and_agg

Fungsi bitwise_and_agg mengembalikan hasil operasi AND bitwise pada nilai-nilai bidang x.

Sintaksis

bitwise_and_agg(x)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini adalah dari tipe bigint.

Tipe nilai kembali

Tipe bigint dalam representasi biner.

Contoh

Mengembalikan hasil operasi AND bitwise pada nilai-nilai bidang request_time.

  • Pernyataan query (Debug)

    * | SELECT
      bitwise_and_agg(status)
  • Hasil query dan analisisAND

fungsi bitwise_or_agg

Fungsi bitwise_or_agg mengembalikan hasil operasi OR bitwise pada nilai-nilai bidang x.

Sintaksis

bitwise_or_agg(x)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini adalah dari tipe bigint.

Tipe nilai kembali

Tipe bigint dalam representasi biner.

Contoh

Mengembalikan hasil operasi OR bitwise pada nilai-nilai bidang request_time.

  • Pernyataan query (Debug)

    * | SELECT
      bitwise_or_agg(request_length)
  • Hasil query dan analisisOR

fungsi bool_and

Fungsi bool_and memeriksa apakah semua log memenuhi kondisi tertentu. Jika ya, fungsi mengembalikan true. Fungsi ini setara dengan fungsi every.

Sintaksis

bool_and(ekspresi boolean)

Parameter

Parameter

Deskripsi

ekspresi boolean

Nilai parameter ini adalah ekspresi Boolean.

Tipe nilai kembali

Tipe Boolean.

Contoh

Periksa apakah nilai bidang request_time kurang dari 100 di semua log. Satuan: detik. Jika ya, fungsi mengembalikan true.

  • Pernyataan query (Debug)

    * | SELECT
      bool_and(request_time < 100)
  • Hasil query dan analisisbool_and

fungsi bool_or

Fungsi bool_or memeriksa apakah ada log yang memenuhi kondisi tertentu. Jika ya, fungsi mengembalikan true.

Sintaksis

bool_or(ekspresi boolean)

Parameter

Parameter

Deskripsi

ekspresi boolean

Nilai parameter ini adalah ekspresi Boolean.

Tipe nilai kembali

Tipe Boolean.

Contoh

Periksa apakah ada log di mana nilai bidang request_time kurang dari 20. Satuan: detik. Jika ya, fungsi mengembalikan true.

  • Pernyataan query (Debug)

    * | SELECT
      bool_or(request_time < 20)
  • Hasil query dan analisisbool_or

fungsi checksum

Fungsi checksum menghitung checksum dari nilai-nilai bidang x.

Sintaksis

checksum(x)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini adalah dari tipe data sembarang.

Tipe nilai kembali

Tipe string. Hasilnya di-enkode Base64.

Contoh

  • Pernyataan query (Debug)

    * | SELECT
      checksum(request_method) AS request_method
  • Hasil query dan analisischecksum

fungsi count

Fungsi count menghitung jumlah log.

Sintaksis

  • Jika menggunakan sintaksis berikut, fungsi menghitung jumlah log.

    count(*)
  • Jika menggunakan sintaksis berikut, fungsi menghitung jumlah log, yang setara dengan count(*).

    count(1)
  • Jika menggunakan sintaksis berikut, fungsi menghitung jumlah log yang nilainya pada bidang x bukan NULL.

    count(x)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini adalah dari tipe data sembarang.

Tipe nilai kembali

Tipe integer.

Contoh

  • Contoh 1: Hitung jumlah page views (PV) dari sebuah situs web.

    • Pernyataan query (Debug)

      * | SELECT
        count(*) AS PV
    • Hasil query dan analisiscount函数

  • Contoh 2: Hitung jumlah log yang nilainya pada bidang request_method bukan NULL.

    • Pernyataan query (Debug)

      * | SELECT
        count(request_method) AS count
    • Hasil query dan analisiscount函数

fungsi count_if

Fungsi count_if menghitung jumlah log yang memenuhi kondisi tertentu.

Sintaksis

count_if(ekspresi boolean)

Parameter

Parameter

Deskripsi

ekspresi boolean

Nilai parameter ini adalah ekspresi Boolean.

Tipe nilai kembali

Tipe integer.

Contoh

Hitung jumlah log yang bidang request_uri-nya memiliki nilai dengan akhiran file-0.

  • Pernyataan query (Debug)

    * | SELECT
      count_if(request_uri like '%file-0') AS count
  • Hasil query dan analisiscount函数

fungsi geometric_mean

Fungsi geometric_mean menghitung rata-rata geometrik dari nilai-nilai bidang x.

Sintaksis

geometric_mean(x)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini adalah dari tipe double, bigint, atau real.

Tipe nilai kembali

Tipe double.

Contoh

Hitung rata-rata geometrik dari nilai-nilai bidang request_time.

  • Pernyataan query (Debug)

    * | SELECT
      geometric_mean(request_time) AS time
  • Hasil query dan analisisgeometric_mean

fungsi every

Fungsi every memeriksa apakah semua log memenuhi kondisi tertentu. Jika ya, fungsi mengembalikan true. Fungsi ini setara dengan fungsi bool_and.

Sintaksis

every(ekspresi boolean)

Parameter

Parameter

Deskripsi

ekspresi boolean

Nilai parameter ini adalah ekspresi Boolean.

Tipe nilai kembali

Tipe Boolean.

Contoh

Periksa apakah nilai bidang request_time kurang dari 100 di semua log. Satuan: detik. Jika ya, fungsi mengembalikan true.

  • Pernyataan query (Debug)

    * | SELECT
      every(request_time < 100)
  • Hasil query dan analisisbool_and

fungsi kurtosis

Fungsi kurtosis menghitung kurtosis dari nilai-nilai bidang x.

Sintaksis

kurtosis(x)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini adalah dari tipe double atau bigint.

Tipe nilai kembali

Tipe double.

Contoh

Hitung kurtosis dari nilai-nilai bidang request_time.

  • Pernyataan query (Debug)

    *| SELECT
      kurtosis(request_time)
  • Hasil query dan analisiskurtosis

fungsi map_union

Fungsi map_union mengembalikan hasil operasi union pada peta yang ditentukan. Jika suatu kunci ada di beberapa peta input, fungsi secara acak mengembalikan salah satu nilai dari kunci tersebut.

Sintaksis

map_union(x)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini adalah dari tipe map.

Tipe nilai kembali

Tipe map.

Contoh

Lakukan operasi union pada peta bidang etl_context dan secara acak mengembalikan salah satu peta.

  • Contoh bidang

    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 query

    * | SELECT
      map_union(
        try_cast(json_parse(etl_context) AS map(varchar, varchar))
      )
  • Hasil query dan analisis map_union

fungsi max

Fungsi max mengambil nilai terbesar dari bidang x.

Sintaksis

  • Jika menggunakan sintaksis berikut, fungsi mengambil nilai terbesar dari bidang x.

    max(x)
  • Jika menggunakan sintaksis berikut, fungsi mengambil n nilai terbesar dari bidang x. Fungsi mengembalikan array.

    max(x, n)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini adalah dari tipe data sembarang.

n

Nilai parameter ini adalah bilangan bulat positif.

Tipe nilai kembali

Sama dengan tipe data nilai parameter.

Contoh

  • Contoh 1: Ambil nilai terbesar dari bidang request_time.

    • Pernyataan query (Debug)

      * | SELECT
        max(request_time) AS max_request_time
    • Hasil query dan analisisMAX函数

  • Contoh 2: Ambil 10 nilai terbesar dari bidang request_time.

    • Pernyataan kueri (Debug)

      * | SELECT
        max(request_time, 10) AS "top 10"
    • Hasil query dan analisismax

fungsi max_by

Daftar berikut menunjukkan sintaksis yang didukung oleh fungsi max_by.

Sintaksis

  • Jika menggunakan sintaksis berikut, fungsi mengambil nilai x yang terkait dengan nilai terbesar dari bidang y.

    max_by(x, y)
  • Jika menggunakan sintaksis berikut, fungsi mengambil nilai-nilai x yang terkait dengan n nilai terbesar dari bidang y. Fungsi mengembalikan array.

    max_by(x, y, n)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini adalah dari tipe data sembarang.

y

Nilai parameter ini adalah dari tipe data sembarang.

n

Nilai parameter ini adalah bilangan bulat lebih besar dari 0.

Tipe nilai kembali

Sama dengan tipe data nilai parameter.

Contoh

  • Contoh 1: Ambil waktu dari pesanan yang memiliki jumlah konsumsi terbesar.

    • Pernyataan query

      * | SELECT
        max_by(UsageEndTime, PretaxAmount) AS time
    • Hasil query dan analisismax_by

  • Contoh 2: Ambil metode permintaan dari permintaan yang memiliki tiga nilai terbesar dari bidang request_time.

    • Pernyataan kueri (Debug)

      * | SELECT
        max_by(request_method, request_time, 3) AS method
    • Hasil query dan analisismax_by

fungsi min

Fungsi min mengambil nilai terkecil dari bidang x.

Sintaksis

  • Jika menggunakan sintaksis berikut, fungsi mengambil nilai terkecil dari bidang x.

    min(x)
  • Jika menggunakan sintaksis berikut, fungsi mengambil n nilai terkecil dari bidang x. Fungsi mengembalikan array.

    min(x,n)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini adalah dari tipe data sembarang.

n

Nilai parameter ini adalah bilangan bulat positif.

Tipe nilai kembali

Sama dengan tipe data nilai parameter.

Contoh

  • Contoh 1: Ambil nilai terkecil dari bidang request_time.

    • Pernyataan kueri (Debug)

      * | SELECT
        min(request_time) AS min_request_time
    • Hasil query dan analisisMIN函数

  • Contoh 2: Ambil 10 nilai terkecil dari bidang request_time.

    • Pernyataan kueri (Debug)

      * | SELECT
        min(request_time, 10)
    • Hasil query dan analisismin

fungsi min_by

Daftar berikut menunjukkan sintaksis yang didukung oleh fungsi min_by.

Sintaksis

  • Jika menggunakan sintaksis berikut, fungsi mengambil nilai x yang terkait dengan nilai terkecil dari bidang y.

    min_by(x, y)
  • Jika menggunakan sintaksis berikut, fungsi mengambil nilai-nilai x yang terkait dengan n nilai terkecil dari bidang y. Fungsi mengembalikan array.

    min_by(x, y, n)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini adalah dari tipe data sembarang.

y

Nilai parameter ini adalah dari tipe data sembarang.

n

Nilai parameter ini adalah bilangan bulat lebih besar dari 0.

Tipe nilai kembali

Sama dengan tipe data nilai parameter.

Contoh

  • Contoh 1: Ambil metode permintaan dari permintaan yang memiliki nilai terkecil dari bidang request_time.

    • Pernyataan kueri (Debug)

      * | SELECT
        min_by(request_method, request_time) AS method
    • Hasil query dan analisismin_by

  • Contoh 2: Ambil metode permintaan dari permintaan yang memiliki tiga nilai terkecil dari bidang request_time.

    • Pernyataan kueri (Debug)

      * | SELECT
        min_by(request_method, request_time, 3) AS method
    • Hasil query dan analisismax_by

fungsi skewness

Fungsi skewness menghitung skewness dari nilai-nilai bidang x.

Sintaksis

skewness(x)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini adalah dari tipe double atau bigint.

Tipe nilai kembali

Tipe double.

Contoh

Hitung skewness dari nilai-nilai bidang request_time.

  • Pernyataan query (Debug)

    *| SELECT
      skewness(request_time) AS skewness
  • Hasil query dan analisisskewness

fungsi sum

Fungsi sum menghitung jumlah dari nilai-nilai bidang x.

Sintaksis

sum(x)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini adalah dari tipe double, bigint, decimal, atau real.

Tipe nilai kembali

Sama dengan tipe data nilai parameter.

Contoh

Hitung lalu lintas masuk harian situs web.

  • Pernyataan kueri (Debug)

    * | SELECT
      date_trunc('hari', __time__) AS waktu,
      sum(body_bytes_sent) AS body_bytes_sent
    GROUP BY
      waktu
    ORDER BY
      waktu
  • Hasil query dan analisisSUM函数