Anda dapat menggunakan fungsi numerik untuk melakukan berbagai operasi pada data numerik. Topik ini menjelaskan sintaksis fungsi numerik dan memberikan contoh penggunaannya dalam AnalyticDB for MySQL.
ABS: Mengembalikan nilai absolut dari argumen.
ACOS: Mengembalikan arc cosine dari argumen.
ASIN: Mengembalikan arc sine dari argumen.
ATAN: Mengembalikan arc tangent dari argumen.
ATAN2: Mengembalikan arc tangent dari hasil x dibagi y.
CEILING atau CEIL: Mengembalikan nilai x yang dibulatkan ke atas ke bilangan bulat terdekat.
COS: Mengembalikan kosinus dari argumen.
COT: Mengembalikan kotangen dari argumen.
CRC32: Mengembalikan kode cyclic redundancy check (CRC) dari argumen.
DEGREES: Mengonversi radian ke derajat.
EXP: Mengembalikan nilai e (basis logaritma natural) dipangkatkan dengan x.
FLOOR: Mengembalikan nilai x yang dibulatkan ke bawah ke bilangan bulat terdekat.
LN: Mengembalikan logaritma natural dari argumen.
LOG: Mengembalikan logaritma dari argumen.
LOG2: Mengembalikan logaritma dari argumen dengan basis 2.
LOG10: Mengembalikan logaritma dari argumen dengan basis 10.
PI: Mengembalikan nilai pi. Pi adalah rasio keliling lingkaran terhadap diameternya.
POWER atau POW: Mengembalikan nilai x dipangkatkan dengan y.
RADIANS: Mengonversi derajat ke radian.
RAND: Mengembalikan angka acak dalam rentang numerik tertentu.
ROUND: Mengembalikan nilai pembulatan dari argumen.
SIGN: Mengembalikan tanda dari argumen.
SIN: Mengembalikan sinus dari argumen.
SQRT: Mengembalikan akar kuadrat dari argumen.
TAN: Mengembalikan tangen dari argumen.
ABS
abs(x)Deskripsi: Fungsi ini mengembalikan nilai absolut dari
x.Tipe data nilai input: TINYINT, SMALLINT, INT, BIGINT, DOUBLE, FLOAT, atau DECIMAL.
Tipe data nilai pengembalian:
Jika tipe data nilai input adalah TINYINT, SMALLINT, INT, atau BIGINT, tipe data nilai pengembalian adalah BIGINT.
Jika tipe data nilai input adalah DOUBLE atau FLOAT, tipe data nilai pengembalian adalah DOUBLE.
Jika tipe data nilai input adalah DECIMAL, tipe data nilai pengembalian adalah DECIMAL.
Contoh:
SELECT abs(4.5);Hasil berikut dikembalikan:
+----------+ | abs(4.5) | +----------+ | 4.5 | +----------+SELECT abs(-4);Hasil berikut dikembalikan:
+--------+ | abs(4) | +--------+ | 4 | +--------+
ACOS
acos(x) Deskripsi: Fungsi ini mengembalikan arc cosine dari
x.Jika
xlebih besar dari 1 atau jikaxkurang dari -1,NULLdikembalikan.Tipe data nilai input: DOUBLE.
Tipe data nilai pengembalian: DOUBLE.
Contoh:
SELECT acos(0.5);Hasil berikut dikembalikan:
+--------------------+ | acos(0.5) | +--------------------+ | 1.0471975511965979 | +--------------------+
ASIN
asin(x) Deskripsi: Fungsi ini mengembalikan arc sine dari
x.Jika
xlebih besar dari 1 atau jikaxkurang dari -1,NULLdikembalikan.Tipe data nilai input: DOUBLE.
Tipe data nilai pengembalian: DOUBLE.
Contoh:
SELECT asin(0.5);Hasil berikut dikembalikan:
+--------------------+ | asin(0.5) | +--------------------+ | 0.5235987755982989 | +--------------------+
ATAN
atan(x) Deskripsi: Fungsi ini mengembalikan arc tangent dari
x.Tipe data nilai input: DOUBLE.
Tipe data nilai pengembalian: DOUBLE.
Contoh:
SELECT atan(0.5);Hasil berikut dikembalikan:
+--------------------+ | atan(0.5) | +--------------------+ | 0.4636476090008061 | +--------------------+
ATAN2
atan2(x, y) Deskripsi: Fungsi ini mengembalikan arc tangent dari hasil
xdibagiy.Tipe data nilai input: DOUBLE.
Tipe data nilai pengembalian: DOUBLE.
Contoh:
SELECT atan2(0.5,0.3);Hasil berikut dikembalikan:
+--------------------+ | atan2(0.5,0.3) | +--------------------+ | 1.0303768265243125 | +--------------------+
CEILING atau CEIL
ceiling(x)
ceil(x)Deskripsi: Fungsi ini mengembalikan nilai
xyang dibulatkan ke atas ke bilangan bulat terdekat.Tipe data nilai input: TINYINT, SMALLINT, INT, BIGINT, DOUBLE, FLOAT, atau DECIMAL.
Tipe data nilai pengembalian:
Jika tipe data nilai input adalah TINYINT, SMALLINT, INT, atau BIGINT, tipe data nilai pengembalian adalah BIGINT.
Jika tipe data nilai input adalah DOUBLE atau FLOAT, tipe data nilai pengembalian adalah DOUBLE.
Jika tipe data nilai input adalah DECIMAL, tipe data nilai pengembalian adalah DECIMAL.
Contoh:
SELECT ceiling(4);Hasil berikut dikembalikan:
+------------+ | ceiling(4) | +------------+ | 4 | +------------+SELECT ceil(-4.5);Hasil berikut dikembalikan:
+------------+ | ceil(-4.5) | +------------+ | -4 | +------------+
COS
cos(x) Deskripsi: Fungsi ini mengembalikan kosinus dari
x.Tipe data nilai input: DOUBLE.
Tipe data nilai pengembalian: DOUBLE.
Contoh:
SELECT cos(1.3);Hasil berikut dikembalikan:
+---------------------+ | cos(1.3) | +---------------------+ | 0.26749882862458735 | +---------------------+
COT
cot(x) Deskripsi: Fungsi ini mengembalikan kotangen dari
x.Tipe data nilai input: DOUBLE.
Tipe data nilai pengembalian: DOUBLE.
Contoh:
SELECT cot(1.234);Hasil berikut dikembalikan:
+---------------------+ | cot(1.234) | +---------------------+ | 0.35013639786701445 | +---------------------+
CRC32
crc32(x) Deskripsi: Fungsi ini mengembalikan kode CRC dari
x.Tipe data nilai input: VARBINARY.
Tipe data nilai pengembalian: BIGINT.
Contoh:
SELECT crc32('China');Hasil berikut dikembalikan:
+-----------------+ | crc32('China') | +-----------------+ | 737014929 | +-----------------+
DEGREES
degrees(x) Deskripsi: Fungsi ini mengonversi radian ke derajat.
Tipe data nilai input: DOUBLE.
Tipe data nilai pengembalian: DOUBLE.
Contoh:
SELECT degrees(1.3);Hasil berikut dikembalikan:
+-------------------+ | degrees(1.3) | +-------------------+ | 74.48451336700703 | +-------------------+
EXP
exp(x) Deskripsi: Fungsi ini mengembalikan nilai
e(basis logaritma natural) dipangkatkan denganx.Tipe data nilai input: DOUBLE.
Tipe data nilai pengembalian: DOUBLE.
Contoh:
SELECT exp(4.5);Hasil berikut dikembalikan:
+-------------------+ | exp(4.5) | +-------------------+ | 90.01713130052181 | +-------------------+
FLOOR
floor(x)Deskripsi: Fungsi ini mengembalikan nilai
xyang dibulatkan ke bawah ke bilangan bulat terdekat.Tipe data nilai input: TINYINT, SMALLINT, INT, BIGINT, DOUBLE, FLOAT, atau DECIMAL.
Tipe data nilai pengembalian:
Jika tipe data nilai input adalah TINYINT, SMALLINT, INT, atau BIGINT, tipe data nilai pengembalian adalah BIGINT.
Jika tipe data nilai input adalah DOUBLE atau FLOAT, tipe data nilai pengembalian adalah DOUBLE.
Jika tipe data nilai input adalah DECIMAL, tipe data nilai pengembalian adalah DECIMAL.
Contoh:
SELECT floor(7);Hasil berikut dikembalikan:
+----------+ | floor(7) | +----------+ | 7 | +----------+SELECT floor(0.8);CatatanAnalyticDB for MySQL mengonversi 0.8 menjadi nilai tipe DECIMAL. Jika tipe data nilai input adalah DECIMAL, tipe data nilai pengembalian adalah DECIMAL.
Hasil berikut dikembalikan:
+-------------+ | floor(0.8) | +-------------+ | 0 | +-------------+SELECT floor(4/5);CatatanAnalyticDB for MySQL mengonversi 4/5 menjadi nilai tipe DOUBLE. Jika tipe data nilai input adalah DOUBLE, tipe data nilai pengembalian adalah DOUBLE. Anda dapat menggunakan fungsi CAST untuk mengonversi floor(4/5)=0.0 menjadi nilai tipe INTEGER atau BIGINT. Untuk informasi lebih lanjut, lihat bagian "CAST AS BIGINT" dari topik fungsi CAST.
Hasil berikut dikembalikan:
+-------------+ | floor(4/5) | +-------------+ | 0.0 | +-------------+
LN
ln(x) Deskripsi: Fungsi ini mengembalikan logaritma natural dari
x.Tipe data nilai input: DOUBLE.
Tipe data nilai pengembalian: DOUBLE.
Contoh:
SELECT ln(2.718281828459045);Hasil berikut dikembalikan:
+-----------------------+ | ln(2.718281828459045) | +-----------------------+ | 1.0 | +-----------------------+
LOG
log(x)
log(x, y) Deskripsi:
Jika hanya argumen x yang ditentukan, fungsi ini mengembalikan logaritma natural dari
x.Jika argumen x dan y keduanya ditentukan, fungsi ini mengembalikan logaritma dari
ydengan basisx.
Tipe data nilai input: DOUBLE.
Tipe data nilai pengembalian: DOUBLE.
Contoh:
SELECT log(16);Hasil berikut dikembalikan:
+-------------------+ | log(16) | +-------------------+ | 2.772588722239781 | +-------------------+SELECT log(10,100);Hasil berikut dikembalikan:
+-------------+ | log(10,100) | +-------------+ | 2.0 | +-------------+
LOG2
log2(x) Deskripsi: Fungsi ini mengembalikan logaritma dari argumen dengan basis 2.
Tipe data nilai input: DOUBLE.
Tipe data nilai pengembalian: DOUBLE.
Contoh:
SELECT log2(8.7654);Hasil berikut dikembalikan:
+-------------------+ | log2(8.7654) | +-------------------+ | 3.131819928389146 | +-------------------+
LOG10
log10(x) Deskripsi: Fungsi ini mengembalikan logaritma dari argumen dengan basis 10.
Tipe data nilai input: DOUBLE.
Tipe data nilai pengembalian: DOUBLE.
Contoh:
SELECT log10(100.876);Hasil berikut dikembalikan:
+--------------------+ | log10(100.876) | +--------------------+ | 2.0037878529824615 | +--------------------+
PI
pi()Deskripsi: Fungsi ini mengembalikan nilai pi.
Tipe data nilai pengembalian: DOUBLE.
Contoh:
SELECT pi();Hasil berikut dikembalikan:
+-------------------+ | pi() | +-------------------+ | 3.141592653589793 | +-------------------+
POWER atau POW
power(x, y)
pow(x, y)Deskripsi: Fungsi ini mengembalikan nilai
xdipangkatkan dengany.Tipe data nilai input: DOUBLE.
Tipe data nilai pengembalian: DOUBLE.
Contoh:
SELECT power(1.2,3.4);Hasil berikut dikembalikan:
+-------------------+ | power(1.2,3.4) | +-------------------+ | 1.858729691979481 | +-------------------+SELECT pow(-2,-3);Hasil berikut dikembalikan:
+------------+ | pow(-2,-3) | +------------+ | -0.125 | +------------+
RADIANS
radians(x) Deskripsi: Fungsi ini mengonversi derajat ke radian.
Tipe data nilai input: DOUBLE.
Tipe data nilai pengembalian: DOUBLE.
Contoh:
SELECT radians(60.0);Hasil berikut dikembalikan:
+--------------------+ | radians(60.0) | +--------------------+ | 1.0471975511965976 | +--------------------+
RAND
rand()
rand()*(y-x)+xDeskripsi: Fungsi ini mengembalikan angka acak dalam rentang numerik tertentu. Anda tidak dapat menentukan argumen input untuk fungsi
rand(). Fungsi rand() secara acak mengembalikan angka yang lebih besar dari atau sama dengan 0 dan kurang dari 1.Anda juga dapat menggunakan fungsi
rand()*(y-x)+x. Fungsi ini secara acak mengembalikan angka dalam rentangxhinggay. Angka yang dikembalikan lebih besar dari atau sama denganxdan kurang dariy.Tipe data nilai pengembalian: DOUBLE.
Contoh:
SELECT rand();Hasil berikut dikembalikan:
+--------------------+ | rand() | +--------------------+ | 0.6613712594764614 | +--------------------+Pernyataan contoh berikut mengembalikan bilangan desimal dalam rentang 3 hingga 12:
SELECT rand()*(12-3)+3;Hasil berikut dikembalikan:
+-------------------+ | rand()*(12-3)+3 | +-------------------+ | 9.073329270781976 | +-------------------+
ROUND
round(x)
round(x,d)Deskripsi: Fungsi ini mengembalikan nilai pembulatan dari
x.dmenentukan jumlah tempat desimal. Nilai default daridadalah0. Tipe data nilai pengembalian sama dengan tipe data darix.Jika
xadalahnull,NULLdikembalikan.Jika
dlebih besar dari 0, argumen dibulatkan ke jumlah tempat desimal yang ditentukan.Jika
dsama dengan 0, argumen dibulatkan ke bilangan bulat terdekat.Jika
dkurang dari 0, argumen dibulatkan ke jumlah tempat desimal di sebelah kiri titik desimal.
Tipe data nilai input: TINYINT, SMALLINT, INT, BIGINT, DOUBLE, FLOAT, atau DECIMAL.
Tipe data nilai pengembalian:
Jika tipe data nilai input adalah TINYINT, SMALLINT, INT, atau BIGINT, tipe data nilai pengembalian adalah BIGINT.
Jika tipe data nilai input adalah DOUBLE atau FLOAT, tipe data nilai pengembalian adalah DOUBLE.
Jika tipe data nilai input adalah DECIMAL, tipe data nilai pengembalian adalah DECIMAL.
Contoh:
Pernyataan contoh berikut membulatkan 345.983 ke bilangan bulat terdekat:
SELECT round(345.983,0);Hasil berikut dikembalikan:
+------------------+ | round(345.983,0) | +------------------+ | 346.000 | +------------------+Pernyataan contoh berikut membulatkan 345.123 ke satu tempat desimal:
SELECT round(345.123,1);Hasil berikut dikembalikan:
+------------------+ | round(345.123,1) | +------------------+ | 345.100 | +------------------+Pernyataan contoh berikut membulatkan 345.984 ke satu tempat desimal di sebelah kiri titik desimal:
SELECT round(344.984,-1);Hasil berikut dikembalikan:
+-------------------+ | round(344.984,-1) | +-------------------+ | 340.000 | +-------------------+Pernyataan contoh berikut membulatkan 345.984 ke empat tempat desimal di sebelah kiri titik desimal:
SELECT round(345.984,-4);Hasil berikut dikembalikan:
+-------------------+ | round(345.984,-4) | +-------------------+ | 0.000 | +-------------------+
SIGN
sign(x)Deskripsi: Fungsi ini mengembalikan nilai yang menunjukkan tanda dari
x.Jika
xlebih besar dari 0, 1 dikembalikan.Jika
xsama dengan 0, 0 dikembalikan.Jika
xkurang dari 0, -1 dikembalikan.
Tipe data nilai input: TINYINT, SMALLINT, INT, BIGINT, DOUBLE, FLOAT, atau DECIMAL.
Tipe data nilai pengembalian: BIGINT.
Contoh:
SELECT sign(12);Hasil berikut dikembalikan:
+----------+ | sign(12) | +----------+ | 1 | +----------+SELECT sign(-4.5);Hasil berikut dikembalikan:
+------------+ | sign(-4.5) | +------------+ | -1 | +------------+
SIN
sin(x) Deskripsi: Fungsi ini mengembalikan sinus dari
x.Tipe data nilai input: DOUBLE.
Tipe data nilai pengembalian: DOUBLE.
Contoh:
SELECT sin(1.234);Hasil berikut dikembalikan:
+--------------------+ | sin(1.234) | +--------------------+ | 0.9438182093746337 | +--------------------+
SQRT
sqrt(x) Deskripsi: Fungsi ini mengembalikan akar kuadrat dari
x.Tipe data nilai input: DOUBLE.
Tipe data nilai pengembalian: DOUBLE.
Contoh:
SELECT sqrt(4.222);Hasil berikut dikembalikan:
+-------------------+ | sqrt(4.222) | +-------------------+ | 2.054750593137766 | +-------------------+
TAN
tan(x) Deskripsi: Fungsi ini mengembalikan tangen dari
x.Tipe data nilai input: DOUBLE.
Tipe data nilai pengembalian: DOUBLE.
Contoh:
SELECT tan(8);Hasil berikut dikembalikan:
+--------------------+ | tan(8) | +--------------------+ | -6.799711455220379 | +--------------------+