全部产品
Search
文档中心

AnalyticDB:Fungsi numerik

更新时间:Jul 02, 2025

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 x lebih besar dari 1 atau jika x kurang dari -1, NULL dikembalikan.

  • 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 x lebih besar dari 1 atau jika x kurang dari -1, NULL dikembalikan.

  • 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 x dibagi y.

  • 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 x yang 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 dengan x.

  • 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 x yang 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);
      Catatan

      AnalyticDB 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);
      Catatan

      AnalyticDB 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 y dengan basis x.

  • 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 x dipangkatkan dengan y.

  • 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)+x
  • Deskripsi: 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 rentang x hingga y. Angka yang dikembalikan lebih besar dari atau sama dengan x dan kurang dari y.

  • 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. d menentukan jumlah tempat desimal. Nilai default dari d adalah 0. Tipe data nilai pengembalian sama dengan tipe data dari x.

    • Jika x adalah null, NULL dikembalikan.

    • Jika d lebih besar dari 0, argumen dibulatkan ke jumlah tempat desimal yang ditentukan.

    • Jika d sama dengan 0, argumen dibulatkan ke bilangan bulat terdekat.

    • Jika d kurang 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 x lebih besar dari 0, 1 dikembalikan.

    • Jika x sama dengan 0, 0 dikembalikan.

    • Jika x kurang 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 |
    +--------------------+