Topik ini menjelaskan sintaksis dasar fungsi matematika beserta contohnya.
Tabel berikut mencantumkan fungsi matematika yang didukung oleh Simple Log Service.
-
Operator berikut didukung:
+-*/%
Secara default, operator / membuang bagian desimal dari hasilnya. Untuk mempertahankan bagian desimal, gunakan operasi seperti
x*1.0/y. -
Dalam pernyataan analitik Log Service, string harus diapit dengan tanda petik tunggal (''). Log Service menginterpretasikan teks tanpa tanda kutip atau teks yang diapit dengan tanda petik ganda ("") sebagai nama field atau nama kolom. Misalnya, 'status' merepresentasikan string 'status', sedangkan status atau "status" merepresentasikan field log status.
|
Function |
Syntax |
Description |
SQL |
SPL |
|
abs(x) |
Mengembalikan nilai absolut dari x. |
√ |
√ |
|
|
acos(x) |
Mengembalikan arc cosine dari x. |
√ |
√ |
|
|
asin(x) |
Mengembalikan arc sine dari x. |
√ |
√ |
|
|
atan(x) |
Mengembalikan arc tangent dari x. |
√ |
√ |
|
|
atan2(x, y) |
Mengembalikan arc tangent dari x dibagi dengan y. |
√ |
√ |
|
|
cbrt(x) |
Mengembalikan akar pangkat tiga dari x. |
√ |
√ |
|
|
ceil(x) |
Membulatkan x ke atas ke bilangan bulat terdekat. Fungsi ini merupakan alias dari fungsi ceiling. |
√ |
√ |
|
|
ceiling(x) |
Membulatkan x ke atas ke bilangan bulat terdekat. |
√ |
√ |
|
|
cos(x) |
Mengembalikan cosinus dari x. |
√ |
√ |
|
|
cosh(x) |
Mengembalikan cosinus hiperbolik dari x. |
√ |
√ |
|
|
cosine_similarity(x, y) |
Mengembalikan kemiripan cosinus antara x dan y. |
√ |
× |
|
|
degrees(x) |
Mengonversi sudut dari radian ke derajat. |
√ |
√ |
|
|
e() |
Mengembalikan nilai e, basis logaritma natural. |
√ |
√ |
|
|
exp(x) |
Memangkatkan e dengan pangkat x. |
√ |
× |
|
|
floor(x) |
Membulatkan x ke bawah ke bilangan bulat terdekat. |
√ |
√ |
|
|
from_base(x, y) |
Mengonversi string basis-y x menjadi angka. |
√ |
√ |
|
|
ln(x) |
Mengembalikan logaritma natural dari x. |
√ |
√ |
|
|
infinity() |
Mengembalikan nilai yang merepresentasikan tak hingga positif. |
√ |
√ |
|
|
is_nan(x) |
Memeriksa apakah x adalah Not a Number (NaN). |
√ |
√ |
|
|
log2(x) |
Mengembalikan logaritma basis-2 dari x. |
√ |
√ |
|
|
log10(x) |
Mengembalikan logaritma basis-10 dari x. |
√ |
√ |
|
|
log(x, y) |
Mengembalikan logaritma basis-y dari x. |
√ |
× |
|
|
mod(x, y) |
Mengembalikan sisa pembagian x dibagi dengan y. |
√ |
√ |
|
|
nan() |
Mengembalikan nilai NaN. |
√ |
√ |
|
|
pi() |
Mengembalikan nilai π hingga 15 tempat desimal. |
√ |
√ |
|
|
pow(x, y) |
Memangkatkan x dengan pangkat y. Fungsi ini merupakan alias dari fungsi power. |
√ |
√ |
|
|
power(x, y) |
Memangkatkan x dengan pangkat y. |
√ |
√ |
|
|
radians(x) |
Mengonversi sudut dari derajat ke radian. |
√ |
√ |
|
|
rand() |
Mengembalikan bilangan acak. |
√ |
√ |
|
|
random() |
Mengembalikan bilangan acak dalam rentang [0, 1). |
√ |
√ |
|
|
random(x) |
Mengembalikan bilangan acak dalam rentang [0, x). |
√ |
√ |
|
|
round(x) |
Membulatkan x ke bilangan bulat terdekat. |
√ |
√ |
|
|
round(x, n) |
Membulatkan x ke n tempat desimal. |
√ |
√ |
|
|
sign(x) |
Mengembalikan tanda dari x sebagai 1, 0, atau -1. |
√ |
× |
|
|
sin(x) |
Mengembalikan sinus dari x. |
√ |
√ |
|
|
sqrt(x) |
Mengembalikan akar kuadrat dari x. |
√ |
√ |
|
|
tan(x) |
Mengembalikan tangen dari x. |
√ |
√ |
|
|
tanh(x) |
Mengembalikan tangen hiperbolik dari x. |
√ |
√ |
|
|
to_base(x, y) |
Mengonversi angka x ke representasi string basis-y-nya. |
√ |
× |
|
|
truncate(x) |
Menghapus bagian pecahan dari x. |
√ |
√ |
|
|
width_bucket(x, bound1, bound2, numBuckets) |
Mengembalikan nomor bucket dari x dalam rentang yang dibagi menjadi bucket dengan lebar sama. |
√ |
× |
|
|
width_bucket(x, bins) |
Menggunakan array untuk menentukan rentang bucket dan mengembalikan bucket tempat x berada. |
√ |
× |
Abs function
Fungsi abs menghitung nilai absolut dari x.
Syntax
abs(x)
Parameters
|
Parameter |
Description |
|
x |
Parameter dapat berupa smallint, integer, real, tinyint, bigint, double, atau decimal. |
Return value type
Nilai yang dikembalikan memiliki tipe data yang sama dengan parameter input.
Examples
Hitung nilai absolut dari -25.
-
Query and analysis statement
* | select abs(-25) -
Hasil query dan analisis: 25.
acos function
Menghitung arc cosine dari x.
Syntax
acos(x)
Parameters
|
Parameter |
Description |
|
x |
Parameter ini harus berupa double dalam rentang [-1, 1]. Jika nilainya di luar rentang ini, fungsi mengembalikan NaN. |
Return value type
Nilai double.
Examples
Contoh ini menghitung arc cosine dari pi()/4.
-
Query statement
* | SELECT acos(pi()/4) -
Hasil query dan analisis: Query mengembalikan 0.6674572160283838.
Asin function
Menghitung arcsine dari x.
Syntax
asin(x)
Parameters
|
Parameter |
Description |
|
x |
Nilai double dalam rentang [-1, 1]. Jika nilainya di luar rentang ini, fungsi mengembalikan NaN. |
Return value type
double
Examples
Menghitung arcsine dari π/4.
-
Query and analysis statement
* | SELECT asin(pi()/4) -
Hasil query dan analisis: 0.9033391101131845.
Atan function
Menghitung arc tangent dari x.
Syntax
atan(x)
Parameters
|
Parameter |
Description |
|
x |
Nilainya harus berupa double. |
Return value type
Mengembalikan nilai double.
Examples
Contoh ini menghitung arc tangent dari pi()/4.
-
Query statement
* | SELECT atan(pi()/4) -
Hasil query: 0.6657737500283538
atan2 function
Menghitung arctangent dari x dibagi dengan y.
Syntax
atan2(x, y)
Parameters
|
Parameter |
Description |
|
x |
Nilai double. |
|
y |
Nilai double. |
Return value type
Mengembalikan nilai double.
Examples
Hitung arctangent dari π dibagi 6.
-
Query statement
* | SELECT atan2(pi(),6) -
Hasil query: Nilai kembali adalah 0.48234790710102495.
Cbrt function
Menghitung akar pangkat tiga dari x.
Syntax
cbrt(x)
Parameters
|
Parameter |
Description |
|
x |
Nilai double. |
Return value type
Mengembalikan nilai double.
Examples
Hitung akar pangkat tiga dari 100.
-
Query statement
* | select cbrt(100) -
Hasil query: 4.641588833612779.
Ceil function
Fungsi ceil membulatkan x ke atas ke bilangan bulat terdekat. Fungsi ceil merupakan alias dari fungsi ceiling.
Syntax
ceil(x)
Parameters
|
Parameter |
Description |
|
x |
Nilai dengan tipe tinyint, smallint, integer, real, bigint, double, atau decimal.
|
Return value type
Nilai kembali memiliki tipe data yang sama dengan parameternya.
Examples
Bulatkan nilai field request_time ke atas ke bilangan bulat terdekat.
-
Sample field
request_time:9.3 -
Query statement
* | SELECT ceil(request_time) AS request_time -
Hasil query: Nilai kolom request_time adalah 10.0.
Ceiling function
Fungsi ceiling membulatkan x ke atas ke bilangan bulat terdekat.
Syntax
ceiling(x)
Parameters
|
Parameter |
Description |
|
x |
Nilai dengan tipe tinyint, smallint, integer, real, bigint, double, atau decimal.
|
Return value type
Tipe data yang sama dengan parameternya.
Examples
Membulatkan nilai field request_time ke atas ke bilangan bulat terdekat.
-
Sample field
request_time:9.3 -
Query and analysis statement
* | SELECT ceiling(request_time) AS request_time -
Hasil query dan analisis: Kolom request_time adalah 10.0.
Cos function
Menghitung cosinus dari x.
Syntax
cos(x)
Parameters
|
Parameter |
Description |
|
x |
Parameter harus berupa double. |
Return value type
Mengembalikan double.
Examples
Menghitung cosinus dari 30 derajat.
-
Query and analysis statement
* | SELECT cos(pi()/6) -
Hasil query dan analisis: 0.8660254037844387.
Cosh function
Fungsi cosh menghitung cosinus hiperbolik dari x.
Syntax
cosh(x)
Parameters
|
Parameter |
Description |
|
x |
Nilainya adalah double. |
Return value type
Mengembalikan nilai double.
Examples
Hitung cosinus hiperbolik dari sudut 30°.
-
Query and analysis statement
* | SELECT cosh(pi()/6) -
Hasil query dan analisis: 1.1402383210764287.
Cosine_similarity
Fungsi ini menghitung kemiripan cosinus antara x dan y.
Syntax
cosine_similarity(x, y)
Parameters
|
Parameter |
Description |
|
x |
Parameter berupa map(varchar, double). |
|
y |
Parameter berupa map(varchar, double). |
Return value type
Mengembalikan nilai double.
Examples
Menghitung kemiripan cosinus antara dua vektor.
-
Query
* | SELECT cosine_similarity(MAP(ARRAY['a'], ARRAY[1.0]), MAP(ARRAY['a'], ARRAY[2.0])) -
Query mengembalikan 1.0.
Degrees function
Fungsi degrees mengonversi sudut dari radian ke derajat.
Syntax
degrees(x)
Parameters
|
Parameter |
Description |
|
x |
Sudut dalam radian, ditentukan sebagai nilai double. |
Return value type
Sudut ekuivalen dalam derajat, dikembalikan sebagai nilai double.
Examples
Konversi π radian ke derajat.
-
Query statement
* | SELECT degrees(pi()) -
Hasil query dan analisis: Hasilnya adalah 180.0.
e function
Fungsi e mengembalikan nilai e, basis logaritma natural.
Syntax
e()
Return value type
Nilai double.
Examples
Mengembalikan nilai e.
-
Query
* | SELECT e() -
Hasil query dan analisis: Nilai kembali adalah 2.718281828459045.
exp function
Menghitung e dipangkatkan x.
Syntax
exp(x)
Parameters
|
Parameter |
Description |
|
x |
Nilai double. |
Return value type
Nilai double.
Examples
Menghitung e dipangkatkan 3.
-
Query and analysis statement
* | SELECT exp(3) -
Hasil query dan analisis: Nilai kembali adalah 20.085536923187669.
Floor function
Fungsi floor membulatkan x ke bawah ke bilangan bulat terdekat.
Syntax
floor(x)
Parameters
|
Parameter |
Description |
|
x |
Nilainya harus berupa tinyint, smallint, integer, real, bigint, double, atau decimal.
|
Return value type
Mengembalikan nilai double.
Examples
Membulatkan nilai field request_time ke bawah ke bilangan bulat terdekat.
-
Sample field
request_time:10.3 -
Query statement
* | SELECT floor(request_time) AS request_time -
Hasil query dan analisis: Nilai kolom request_time adalah 10.0.
from_base function
Fungsi from_base mengonversi string x dari basis y menjadi angka.
Syntax
from_base(x, y)
Parameters
|
Parameter |
Description |
|
x |
String varchar. |
|
y |
Basis untuk angka tersebut. Nilainya harus berupa bigint dari 2 hingga 36. |
Return value type
Mengembalikan bigint.
Examples
Mengonversi string biner '1101' ke ekuivalen desimalnya.
-
Query statement
* | SELECT from_base('1101',2) -
Hasil: Nilai kembali adalah 13.
Ln function
Fungsi ln menghitung logaritma natural dari x.
Syntax
ln(x)
Parameters
|
Parameter |
Description |
|
x |
Nilai double lebih besar dari 0. |
Return value type
Nilai double.
Examples
Contoh ini menghitung logaritma natural dari 2.
-
Query and analysis statement
* | SELECT ln(2) -
Hasil query dan analisis: Mengembalikan 0.6931471805599453.
Infinity function
Fungsi infinity mengembalikan tak hingga positif.
Syntax
infinity()
Return value type
double
Examples
Mengembalikan tak hingga positif.
-
Query and analysis statement
* | SELECT infinity() -
Hasil query dan analisis: Infinity.
Is_nan function
Fungsi is_nan mengembalikan true jika x adalah NaN (Not a Number), dan false jika tidak.
Syntax
is_nan(x)
Parameters
|
Parameter |
Description |
|
x |
Nilai double. |
Return value type
Mengembalikan nilai boolean.
Examples
Periksa apakah nilai field status adalah NaN.
-
Query and analysis statement
* | SELECT is_nan(status) -
Hasil query dan analisis: Pernyataan mengembalikan false.
log2 function
Fungsi log2 menghitung logaritma basis-2 dari x.
Syntax
log2(x)
Parameters
|
Parameter |
Description |
|
x |
Nilai double. |
Return value type
Mengembalikan nilai double.
Examples
Hitung logaritma basis-2 dari 100.
-
Query and analysis statement
* | SELECT log2(100) -
Hasil query dan analisis: Nilai kembali adalah 6.643856189774725.
log10 function
Fungsi log10 menghitung logaritma basis-10 dari x.
Syntax
log10(x)
Parameters
|
Parameter |
Description |
|
x |
Nilai |
Return value type
Mengembalikan nilai double.
Examples
Contoh ini menghitung logaritma basis-10 dari 100.
-
Query and analysis statement
* | SELECT log10(100) -
Hasil query dan analisis: 2.0.
Log function
Fungsi log menghitung logaritma basis-y dari x.
Syntax
log(x, y)
Parameters
|
Parameter |
Description |
|
x |
Nilainya harus berupa double. |
|
y |
Nilainya harus berupa double. |
Return value type
Mengembalikan nilai double.
Examples
Menghitung logaritma basis-5 dari 100.
-
Query
* | SELECT log(100,5) -
Hasil: 2.8613531161467867.
mod function
Fungsi mod mengembalikan sisa ketika x dibagi dengan y.
Syntax
mod(x, y)
Parameters
|
Parameter |
Description |
|
x |
Nilai dengan tipe tinyint, smallint, integer, real, bigint, double, atau decimal. |
|
y |
Nilai dengan tipe tinyint, smallint, integer, real, bigint, double, atau decimal. |
Return value type
Nilai kembali memiliki tipe data yang sama dengan parameter input.
Examples
Hitung sisa dari 100 dibagi 30.
-
Query statement
* | SELECT mod(100,30) -
Hasil query dan analisis: Mengembalikan 10.
Nan function
Fungsi nan mengembalikan NaN (Not a Number).
Syntax
nan()
Return value type
Double.
Examples
Mengembalikan nilai NaN.
-
Query statement
* | SELECT nan() -
Hasil query: Nilai kembali adalah NaN.
Pi function
Fungsi ini mengembalikan nilai π, akurat hingga 15 tempat desimal.
Syntax
pi()
Return value type
Mengembalikan nilai double.
Examples
Contoh ini mengembalikan nilai π.
-
Query and analysis statement
* | SELECT pi() -
Hasil query dan analisis: 3.141592653589793.
Pow function
Fungsi pow mengembalikan x dipangkatkan y. Fungsi ini merupakan alias dari fungsi power.
Syntax
pow(x, y)
Parameters
|
Parameter |
Description |
|
x |
Nilai double. |
|
y |
Nilai double. |
Return value type
Mengembalikan nilai double.
Examples
Pangkatkan 2 dengan pangkat 5.
-
Query statement
* | SELECT pow(2,5) -
Hasil query dan analisis: 32.0.
Power function
Mengembalikan x dipangkatkan y.
Syntax
power(x, y)
Parameters
|
Parameter |
Description |
|
x |
Nilai double. |
|
y |
Nilai double. |
Return value type
Nilai double.
Examples
Hitung 2 dipangkatkan 5.
-
Query and analysis statement
* | SELECT power(2,5) -
Hasil query dan analisis: Mengembalikan 32.0.
Radians function
Mengonversi sudut dari derajat ke radian.
Syntax
radians(x)
Parameters
|
Parameter |
Description |
|
x |
Harus berupa |
Return value type
Mengembalikan double.
Examples
Konversi 180 derajat ke radian.
-
Query statement
* | SELECT radians(180) -
Hasil query: 3.141592653589793
Rand function
Fungsi rand mengembalikan bilangan acak.
Syntax
rand()
Return value type
double
Examples
Query berikut mengembalikan bilangan acak.
-
Query statement
* | select rand() -
Hasil query dan analisis: Mengembalikan nilai acak, seperti 0.8742241064002435.
Random function
Fungsi random mengembalikan bilangan acak dalam rentang [0,x).
Syntax
-
Mengembalikan nilai presisi ganda acak dalam rentang [0, 1.0).
random() -
Mengembalikan bilangan bulat acak dalam rentang [0, x).
random(x)
Parameters
|
Parameter |
Description |
|
x |
Nilai tinyint, smallint, integer, atau bigint. |
Return value type
Mengembalikan nilai dengan tipe data yang sama dengan parameter input.
Examples
Hasilkan bilangan acak dalam rentang [0, 100).
-
Query statement
* | select random(100) -
Hasil query: Mengembalikan bilangan bulat acak, misalnya 44.
Round function
Fungsi round membulatkan x. Jika Anda menentukan n, fungsi membulatkan nilainya ke n tempat desimal. Jika Anda menghilangkan n, fungsi membulatkan x ke bilangan bulat terdekat.
Syntax
-
Membulatkan x ke bilangan bulat terdekat.
round(x) -
Membulatkan x ke n tempat desimal.
round(x, n)
Parameters
|
Parameter |
Description |
|
x |
Nilai tinyint, smallint, integer, atau bigint. |
|
n |
Jumlah tempat desimal yang dipertahankan. |
Return value type
Nilai kembali memiliki tipe data yang sama dengan parameter x.
Examples
Contoh ini membandingkan jumlah tampilan halaman (PVs) hari ini dengan kemarin dan menyatakan perubahan sebagai persentase.
-
Query statement
* | SELECT diff [1] AS today, round((diff [3] -1.0) * 100, 2) AS growth FROM (SELECT compare(pv, 86400) as diff FROM (SELECT COUNT(*) as pv FROM website_log)) -
Query mengembalikan today sebagai 1564075.0 dan growth sebagai -22.11.
sign function
Fungsi sign mengembalikan tanda dari x sebagai 1, 0, atau -1.
Syntax
sign(x)
Parameters
|
Parameter |
Description |
|
x |
Ekspresi numerik yang dievaluasi. Tipe datanya dapat berupa integer, smallint, tinyint, real, double, bigint, atau decimal(p,s).
|
Return value type
Mengembalikan tipe data yang sama dengan parameter input.
Examples
Hitung tanda dari angka 10.
-
Query statement
* | SELECT sign(10) -
Hasil query: Nilai yang dikembalikan adalah 1.
Sin function
Fungsi ini menghitung sinus dari x.
Syntax
sin(x)
Parameters
|
Parameter |
Description |
|
x |
Nilai double. |
Return value type
Mengembalikan nilai double.
Examples
Contoh ini menghitung sinus dari 90 derajat.
-
Query and analysis statement
* | select sin(pi()/2) -
Hasil query dan analisis: Mengembalikan 1.0.
Sqrt function
Menghitung akar kuadrat dari x.
Syntax
sqrt(x)
Parameters
|
Parameter |
Description |
|
x |
Nilai double. |
Return value type
Mengembalikan nilai double.
Examples
Hitung akar kuadrat dari 100.
-
Query and analysis statement
* | select sqrt(100) -
Hasil query dan analisis: Hasilnya adalah 10.0.
Tan function
Fungsi tan menghitung tangen dari x.
Syntax
tan(x)
Parameters
|
Parameter |
Description |
|
x |
Nilai presisi ganda. |
Return value type
Nilai presisi ganda.
Examples
Hitung tangen dari 30 derajat.
-
Query statement
* | SELECT tan(pi()/6) -
Hasil query: 0.5773502691896257.
Tanh function
Fungsi tanh menghitung tangen hiperbolik dari x.
Syntax
tanh(x)
Parameters
|
Parameter |
Description |
|
x |
Harus berupa nilai |
Return value type
Mengembalikan nilai double.
Examples
Contoh ini menghitung tangen hiperbolik dari π/6 radian (30 derajat).
-
Query
* | SELECT tanh(pi()/6) -
Hasil query: Query mengembalikan 0.4804727781564516.
To_base function
Fungsi ini mengonversi bigint x ke representasi string-nya dalam basis y.
Syntax
to_base(x, y)
Parameters
|
Parameter |
Description |
|
x |
Bigint yang akan dikonversi. |
|
y |
Basis untuk string output. Nilainya harus berupa bigint dari 2 hingga 36, inklusif. |
Return value type
Mengembalikan nilai varchar.
Examples
Konversi 180 ke string biner.
-
Query statement
* | SELECT to_base(180, 2) -
Hasil query: 10110100
Truncate function
Fungsi truncate menghapus bagian pecahan dari x.
Syntax
truncate(x)
Parameters
|
Parameter |
Description |
|
x |
Nilai double. |
Return value type
Mengembalikan nilai double.
Examples
Hapus bagian pecahan dari 11.11.
-
Query statement
* | SELECT truncate(11.11) -
Hasil query: 11.0.
width_bucket function
Fungsi width_bucket mengembalikan nomor bucket untuk nilai x.
Syntax
-
Membagi rentang numerik menjadi sejumlah bucket dengan lebar sama dan mengembalikan nomor bucket untuk x.
width_bucket(x, bound1, bound2, numBuckets) -
Mengembalikan nomor bucket untuk x berdasarkan array batas bucket yang ditentukan.
width_bucket(x, bins)
Parameters
|
Parameter |
Description |
|
x |
Nilai yang akan dimasukkan ke bucket. Nilai ini harus bertipe double. |
|
bound1 |
Menentukan batas bawah rentang numerik. |
|
bound2 |
Menentukan batas atas rentang numerik. |
|
numBuckets |
Jumlah bucket. Nilainya harus berupa integer lebih besar dari 0. |
|
bins |
Gunakan bins, array bertipe double, untuk menentukan rentang bucket. |
Return value type
Mengembalikan nilai bertipe bigint.
-
Jika x berada dalam rentang yang ditentukan, bucket tempat x berada akan dikembalikan.
-
Jika x berada di bawah batas bawah, fungsi mengembalikan 0.
-
Jika x lebih besar dari atau sama dengan batas atas, fungsi mengembalikan numBuckets+1.
Examples
-
Contoh 1: Bagi rentang numerik [10, 80) menjadi 7 bucket dengan lebar sama dan kembalikan nomor bucket untuk setiap nilai dalam field request_time.
-
Query statement
* | SELECT request_time, width_bucket(request_time, 10, 80,7) AS numBuckets -
Hasil query dan analisis: Query mengembalikan kolom request_time dan numBuckets. Kolom-kolom ini menunjukkan nomor bucket yang sesuai untuk setiap waktu permintaan. Misalnya, jika request_time adalah 26.0, numBuckets adalah 2, dan jika request_time adalah 49.0, numBuckets adalah 4.
-
-
Contoh 2: Gunakan array untuk menentukan batas bucket dan kembalikan nomor bucket untuk setiap nilai dalam field request_time.
-
Query statement
* | SELECT request_time, width_bucket(request_time, array[10,20,30,40,50,60,70,80]) AS numBuckets -
Hasil query dan analisis: Query mengembalikan kolom request_time dan numBuckets. Kolom-kolom ini menunjukkan nomor bucket yang diberikan untuk setiap waktu permintaan berdasarkan array batas kustom. Misalnya, jika request_time adalah 26.0, numBuckets adalah 2, dan jika request_time adalah 54.0, numBuckets adalah 5.
-