All Products
Search
Document Center

Elasticsearch:Kueri data menggunakan plug-in aliyun-sql (onboarding pelanggan baru dihentikan)

Last Updated:Mar 20, 2026

Sebelum memulai

Plug-in aliyun-sql tidak lagi menerima pelanggan baru. Hanya pelanggan yang sudah ada yang dapat terus menggunakannya. Kami menyarankan Anda menggunakan plug-in Elasticsearch x-pack-sql resmi sebagai gantinya. Untuk informasi selengkapnya, lihat sql-search-api.

Plug-in aliyun-sql memungkinkan Anda melakukan kueri data di Alibaba Cloud Elasticsearch menggunakan pernyataan SQL. Plug-in ini kompatibel dengan sintaksis MySQL 5 serta hanya mendukung versi Alibaba Cloud Elasticsearch 6.7.0 hingga 7.7.1, termasuk 6.7.0, 6.8.x, 7.4.0, dan 7.7.1. Versi 7.10.0 dan yang lebih baru tidak didukung.

Aktifkan dan nonaktifkan plug-in

Sebelum menggunakan plug-in aliyun-sql, Anda harus mengaktifkannya di Dev Tools pada konsol Kibana. Untuk login ke konsol Kibana, lihat Menghubungkan ke kluster menggunakan Kibana.

  • Aktifkan plug-in

    Di Dev Tools Kibana, jalankan perintah berikut:

    PUT _cluster/settings
    {
      "transient": {
        "aliyun.sql.enabled": true
      }
    }
  • Nonaktifkan dan uninstal plug-in

    Anda harus menonaktifkan konfigurasi plug-in aliyun-sql sebelum meng-uninstalnya. Jika tidak, restart kluster yang dipicu oleh proses uninstall akan hang.

    Nonaktifkan konfigurasi plug-in.

    PUT _cluster/settings
    {
      "persistent": {
        "aliyun.sql.enabled": null
      }
    }

    Jika Anda meng-uninstal plug-in sebelum menonaktifkan konfigurasinya dan restart menjadi hang, jalankan perintah berikut untuk membersihkan konfigurasi yang diarsipkan dan melanjutkan restart:

    PUT _cluster/settings
    {
      "persistent": {
        "archived.aliyun.sql.enabled": null
      }
    }

Panduan Cepat

Contoh berikut menunjukkan cara menggunakan plug-in aliyun-sql untuk menulis data uji dan menjalankan kueri JOIN.

Plug-in aliyun-sql hanya mendukung permintaan kueri, bukan permintaan tulis. Anda dapat menggunakan bulk API untuk menulis data.

  1. Login ke konsol Kibana instans Alibaba Cloud Elasticsearch Anda.

    Untuk informasi selengkapnya tentang cara login ke konsol Kibana, lihat Menghubungkan ke kluster menggunakan Kibana.

  2. Di Kibana, buka Dev Tools > Console, lalu masukkan data informasi mahasiswa dan data peringkat.

    Data informasi mahasiswa:

    PUT stuinfo/_doc/_bulk?refresh
    {"index":{"_id":"1"}}
    {"id":572553,"name":"xiaoming","age":"22","addr":"addr1"}
    {"index":{"_id":"2"}}
    {"id":572554,"name":"xiaowang","age":"23","addr":"addr2"}
    {"index":{"_id":"3"}}
    {"id":572555,"name":"xiaoliu","age":"21","addr":"addr3"}

    Data peringkat mahasiswa:

    PUT sturank/_doc/_bulk?refresh
    {"index":{"_id":"1"}}
    {"id":572553,"score":"90","sorder":"5"}
    {"index":{"_id":"2"}}
    {"id":572554,"score":"92","sorder":"3"}
    {"index":{"_id":"3"}}
    {"id":572555,"score":"86","sorder":"10"}
  3. Gunakan kueri JOIN untuk mengambil nama dan peringkat mahasiswa.

    POST /_alisql
    {
      "query":"select stuinfo.name,sturank.sorder from stuinfo join sturank on stuinfo.id=sturank.id"
    }

    Dalam respons, bidang columns berisi nama dan tipe kolom, sedangkan bidang rows berisi data baris:

    {
      "columns" : [
        {
          "name" : "name",
          "type" : "text"
        },
        {
          "name" : "sorder",
          "type" : "text"
        }
      ],
      "rows" : [
        [
          "xiaoming",
          "5"
        ],
        [
          "xiaowang",
          "3"
        ],
        [
          "xiaoliu",
          "10"
        ]
      ]
    }

Kueri dasar

Anda dapat menjalankan semua kueri SQL menggunakan endpoint POST /_alisql.

  • Kueri sederhana

    POST /_alisql?pretty
    {
      "query": "select * from monitor where host='100.80.xx.xx' limit 5"
    }
  • Tetapkan jumlah hasil yang dikembalikan

    POST /_alisql?pretty
    {
        "query": "select * from monitor",
        "fetch_size": 3
    }
  • Kueri berparameter

    POST /_alisql?pretty
    {
      "query": "select * from monitor where host= ? ",
      "params": [{"type":"STRING","value":"100.80.xx.xx"}],
      "fetch_size": 1
    }

Parameter permintaan

Jenis parameter

Nama parameter

Wajib

Contoh

Deskripsi

Parameter URL

pretty

Tidak

Tidak ada

Format respons agar mudah dibaca.

Parameter body permintaan

query

Ya

select * from monitor where host='100.80.xx.xx' limit 5

Pernyataan kueri SQL.

Parameter body permintaan

fetch_size

Tidak

3

Jumlah baris yang dikembalikan per kueri. Default: 1000. Maksimum: 10000. Jika Anda menetapkan nilai lebih dari 10000, sistem akan menggunakan 10000. Klausul limit mendukung kueri penuh atau rentang. fetch_size bekerja seperti kueri scroll.

Parameter body permintaan

params

Tidak

[{"type":"STRING","value":"100.80.xx.xx"}]

Mendukung kueri berparameter mirip PreparedStatement.

Respons

Untuk kueri besar, respons pertama mengembalikan sejumlah baris sesuai parameter fetch_size dan menyertakan cursor.

{
  "columns": [
    {
      "name": "times",
      "type": "integer"
    },
    {
      "name": "value2",
      "type": "float"
    },
    {
      "name": "host",
      "type": "keyword"
    },
    {
      "name": "region",
      "type": "keyword"
    },
    {
      "name": "measurement",
      "type": "keyword"
    },
    {
      "name": "timestamp",
      "type": "date"
    }
  ],
  "rows": [
    [
      572575,
      4649800.0,
      "100.80.xx.xx",
      "china-dd",
      "cpu",
      "2018-08-09T08:18:42.000Z"
    ]
  ],
  "cursor": "u5HzAgJzY0BEWEYxWlhKNVFXNWtS****"
}

Parameter

Deskripsi

columns

Berisi name dan type. Menampilkan nama dan tipe setiap bidang.

rows

Hasil kueri.

cursor

Cursor untuk paginasi.

Secara default, setiap respons mengembalikan 1.000 baris. Jika set hasil berisi lebih dari 1.000 baris, Anda dapat terus menggunakan cursor untuk mengambil baris yang tersisa hingga respons tidak lagi menyertakan cursor atau tidak mengembalikan data.

Kueri scroll

Gunakan cursor dari kueri sebelumnya untuk mengambil halaman data berikutnya.

  • Permintaan kueri

    POST /_alisql?pretty
    {
        "cursor": "u5HzAgJzY0BEWEYxWlhKNVFXNWtS****"
    }

    Jenis parameter

    Parameter

    Apakah wajib?

    Deskripsi

    Parameter URL

    pretty

    Tidak

    Format respons agar mudah dibaca.

    Parameter body permintaan

    cursor

    Ya

    Nilai cursor untuk mengambil data yang sesuai.

  • Respons

    {
      "rows": [
        [
          572547,
          3.327459E7,
          "100.80.xx.xx",
          "china-dd",
          "cpu",
          "2018-08-09T08:19:12.000Z"
        ]
      ],
      "cursor": "u5HzAgJzY0BEWEYxWlhKNVFXNWtS****"
    }

    Respons ini mirip dengan kueri dasar, tetapi bidang columns dihilangkan untuk mengurangi lalu lintas jaringan.

Kueri format JSON

Anda dapat menggunakan parameter format=org untuk mengembalikan hasil dalam format JSON Elasticsearch asli. Mode ini tidak mendukung kueri JOIN.

  • Permintaan kueri

    POST /_alisql?format=org
    {
      "query": "select * from monitor where host= ? ",
      "params": [{"type":"STRING","value":"100.80.xx.xx"}],
      "fetch_size": 1
    }

    Parameter kueri lainnya sama seperti pada kueri dasar.

  • Respons

    {
      "_scroll_id": "DXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAAAsWYXNEdlVJZzJTSXFfOGluOVB4Q3Z****",
      "took": 18,
      "timed_out": false,
      "_shards": {
        "total": 1,
        "successful": 1,
        "skipped": 0,
        "failed": 0
      },
      "hits": {
        "total": 2,
        "max_score": 1.0,
        "hits": [
          {
            "_index": "monitor",
            "_type": "_doc",
            "_id": "2",
            "_score": 1.0,
            "_source": {
              "times": 572575,
              "value2": 4649800,
              "host": "100.80.xx.xx",
              "region": "china-dd",
              "measurement": "cpu",
              "timestamp": "2018-08-09T16:18:42+0800"
            }
          }
        ]
      }
    }

    Format respons sesuai dengan kueri DSL asli. Anda dapat menggunakan parameter _scroll_id untuk paginasi.

Terjemahkan kueri

Anda dapat mengonversi pernyataan SQL menjadi pernyataan Domain-Specific Language (DSL) Elasticsearch. Fitur ini tidak mendukung kueri JOIN.

  • Permintaan kueri

    POST _alisql/translate
    {
      "query": "select * from monitor where host= '100.80.xx.xx' "
    }
  • Respons

    {
      "size": 1000,
      "query": {
        "constant_score": {
          "filter": {
            "term": {
              "host": {
                "value": "100.80.xx.xx",
                "boost": 1.0
              }
            }
          },
          "boost": 1.0
        }
      },
      "_source": {
        "includes": [
          "times",
          "value2",
          "host",
          "region",
          "measurement",
          "timestamp"
        ],
    
        "excludes": [ ]
    
      }
    }

Kueri JOIN

Plug-in aliyun-sql hanya mendukung inner join, yang diimplementasikan menggunakan merge join. Perhatikan batasan berikut:

  • Bidang JOIN harus bersifat strictly increasing atau decreasing terhadap ID dokumen Elasticsearch.

  • Bidang JOIN harus numerik. Bidang string tidak didukung.

  • Secara default, jumlah maksimum baris yang dapat dikembalikan per tabel adalah 10.000.

Sintaksis:

SELECT
  expression
FROM table_name
JOIN table_name
 ON expression
[WHERE condition]

Anda dapat mengubah jumlah maksimum baris per tabel menggunakan parameter kluster dinamis max.join.size. Misalnya, untuk menetapkan jumlah maksimum baris menjadi 20.000, jalankan perintah berikut:

PUT /_cluster/settings
{
  "transient": {
    "max.join.size": 20000
  }
}

Kueri untuk bidang nested dan text

Plug-in aliyun-sql mendukung kueri untuk bidang nested dan text.

  1. Buat indeks dengan bidang nested dan text.

    PUT user_info/
    {
        "mappings":{
            "_doc":{
                "properties":{
                    "addr":{
                        "type":"text"
                    },
                    "age":{
                        "type":"integer"
                    },
                    "id":{
                        "type":"integer"
                    },
                    "name":{
                         "type":"nested",
                         "properties":{
                            "first_name":{
                                "type":"keyword"
                            },
                            "second_name":{
                                "type":"keyword"
                            }
                        }
                    }
                }
            }
        }
    }
  2. Lakukan penyisipan bulk.

    PUT user_info/_doc/_bulk?refresh
    {"index":{"_id":"1"}}
    {"addr":"467 Hutchinson Court","age":80,"id":"1","name":[{"first_name":"lesi","second_name" : "Adams"},{"first_name":"chaochaosi","second_name" : "Aams"}]}
    {"index":{"_id":"2"}}
    {"addr":"671 Bristol Street","age":21,"id":"2","name":{"first_name":"Hattie","second_name" : "Bond"}}
    {"index":{"_id":"3"}}
    {"addr":"554 Bristol Street","age":23,"id":"3","name":{"first_name":"Hattie","second_name" : "Bond"}}
  3. Kueri bidang second_name bertipe nested.

    POST _alisql
    {
      "query": "select * from user_info where name.second_name='Adams'"
    }

    Respons:

    {
      "columns" : [
        {
          "name" : "id",
          "type" : "integer"
        },
        {
          "name" : "addr",
          "type" : "text"
        },
        {
          "name" : "name.first_name",
          "type" : "keyword"
        },
        {
          "name" : "age",
          "type" : "integer"
        },
        {
          "name" : "name.second_name",
          "type" : "keyword"
        }
      ],
      "rows" : [
        [
          1,
          "467 Hutchinson Court",
          "lesi",
          80,
          "Adams"
        ]
      ]
    }
  4. Kueri bidang addr bertipe text.

    POST _alisql
    {
      "query": "select * from user_info where addr='Bristol'"
    }

    Respons:

    {
      "columns" : [
        {
          "name" : "id",
          "type" : "integer"
        },
        {
          "name" : "addr",
          "type" : "text"
        },
        {
          "name" : "name.first_name",
          "type" : "keyword"
        },
        {
          "name" : "age",
          "type" : "integer"
        },
        {
          "name" : "name.second_name",
          "type" : "keyword"
        }
      ],
      "rows" : [
        [
          2,
          "671 Bristol Street",
          "Hattie",
          21,
          "Bond"
        ],
        [
          3,
          "554 Bristol Street",
          "Hattie",
          23,
          "Bond"
        ]
      ]
    }

Fungsi UDF kustom

Anda hanya dapat mendaftarkan User-Defined Functions (UDF) selama inisialisasi plug-in. Anda tidak dapat menambahkan UDF secara dinamis. Contoh berikut menunjukkan cara memperluas metode date_format.

  1. Definisikan kelas DateFormat berdasarkan UDF.

    /**
     * DateFormat.
     */
    public class DateFormat extends UDF {
    
        public String eval(DateTime time, String toFormat) {
            if (time == null || toFormat == null) {
                return null;
            }
            Date date = time.toDate();
            SimpleDateFormat format =  new SimpleDateFormat(toFormat);
            return format.format(date);
        }
    
    }
  2. Tambahkan kelas DateFormat ke metode inisialisasi plug-in.

    udfTable.add(KeplerSqlUserDefinedScalarFunction
                    .create("date_format"
                            , DateFormat.class
                            , (JavaTypeFactoryImpl) typeFactory));
  3. Gunakan UDF dalam kueri.

    select date_format(date_f,'yyyy') from date_test

Ikhtisar sintaksis SQL

Sintaksis kueri dasar

SELECT [DISTINCT] (* | expression) [[AS] alias] [, ...]
FROM table_name
[WHERE condition]
[GROUP BY expression [, ...]
 [HAVING condition]]
[ORDER BY expression [ ASC | DESC ] [, ...]]
[LIMIT [offset, ] size]

Sintaksis kueri JOIN

SELECT
  expression
FROM table_name
JOIN table_name
 ON expression
[WHERE condition]

Fungsi dan ekspresi

Jenis

Nama

Contoh

Deskripsi

Fungsi numerik

ABS

SELECT ABS(num_field) FROM table

Mengembalikan nilai absolut suatu angka.

Fungsi numerik

ACOS

SELECT ACOS(num_field) FROM table

Mengembalikan arccosinus suatu angka.

Fungsi numerik

ASIN

SELECT ASIN(num_field) FROM table

Mengembalikan arcsinus suatu angka.

Fungsi numerik

ATAN

SELECT ATAN(num_field) FROM table

Mengembalikan arctangen suatu angka.

Fungsi numerik

ATAN2

SELECT ATAN2(num_field1,num_field2) FROM table

Mengembalikan arctangen dua angka.

Fungsi numerik

CEIL

SELECT CEIL(num_field) FROM table

Mengembalikan bilangan bulat terkecil yang lebih besar dari atau sama dengan suatu angka.

Fungsi numerik

CBRT

SELECT CBRT(num_field) FROM table

Mengembalikan akar pangkat tiga presisi ganda suatu angka.

Fungsi numerik

COS

SELECT COS(num_field) FROM table

Mengembalikan kosinus suatu angka.

Fungsi numerik

COT

SELECT COT(num_field) FROM table

Mengembalikan kotangen suatu angka.

Fungsi numerik

DEGREES

SELECT DEGREES(num_field) FROM table

Mengonversi radian ke derajat.

Fungsi numerik

EXP or EXPM1

SELECT EXP(num_field) FROM table

Mengembalikan e pangkat suatu angka.

Fungsi numerik

FLOOR

SELECT FLOOR(num_field) FROM table

Mengembalikan bilangan bulat terbesar yang kurang dari atau sama dengan suatu angka.

Fungsi numerik

SIN

SELECT SIN(num_field) FROM table

Mengembalikan sinus suatu angka.

Fungsi numerik

SINH

SELECT SINH(num_field) FROM table

Mengembalikan sinus hiperbolik suatu angka.

Fungsi numerik

SQRT

SELECT SQRT(num_field) FROM table

Mengembalikan akar kuadrat positif suatu angka.

Fungsi numerik

TAN

SELECT TAN(num_field) FROM table

Mengembalikan tangen suatu angka.

Fungsi numerik

ROUND

SELECT ROUND(num_field,2) FROM table

Membulatkan angka ke jumlah tempat desimal tertentu.

Fungsi numerik

RADIANS

SELECT RADIANS (num_field) FROM table

Mengonversi derajat ke radian.

Fungsi numerik

RAND

SELECT RAND() FROM table

Mengembalikan nilai presisi ganda positif antara 0,0 dan 1,0.

Fungsi numerik

LN

SELECT LN (num_field) FROM table

Mengembalikan logaritma natural suatu angka.

Fungsi numerik

LOG10

SELECT LOG10 (num_field) FROM table

Mengembalikan logaritma basis-10 suatu angka.

Fungsi numerik

PI

SELECT PI() FROM table

Mengembalikan nilai π.

Fungsi numerik

POWER

SELECT POWER (num_field,2) FROM table

Mengembalikan angka yang dipangkatkan ke nilai tertentu.

Fungsi numerik

TRUNCATE

SELECT TRUNCATE (num_field,2) FROM table

Memotong angka ke jumlah tempat desimal tertentu.

Operator aritmetika

+

SELECT (v1 + v2) as v FROM table

Mengembalikan jumlah dua angka.

Operator aritmetika

-

SELECT(v1 - v2) as v FROM table

Mengembalikan selisih dua angka.

Operator aritmetika

*

SELECT(v1 * v2) as v FROM table

Mengembalikan hasil kali dua angka.

Operator aritmetika

/

SELECT(v1 / v2) as v FROM table

Mengembalikan hasil bagi dua angka.

Operator aritmetika

%

SELECT(v1 % v2) as v FROM table

Mengembalikan sisa setelah pembagian.

Operator logika

AND

SELECT * FROM table WHERE condition AND condition

Mengembalikan data yang memenuhi kedua kondisi.

Operator logika

OR

SELECT * FROM table WHERE condition OR condition

Mengembalikan data yang memenuhi salah satu kondisi.

Operator logika

NOT

SELECT * FROM table WHERE NOT condition

Mengembalikan data yang tidak memenuhi kondisi.

Operator logika

IS NULL

SELECT * FROM table WHERE field IS NULL

Mengembalikan data ketika bidang yang ditentukan kosong.

Operator logika

IS NOT NULL

SELECT * FROM table WHERE field IS NOT NULL

Mengembalikan data ketika bidang yang ditentukan tidak kosong.

Fungsi string

ASCII

SELECT ASCII(str_field) FROM table

Mengembalikan nilai ASCII suatu karakter.

Fungsi string

LCASE or LOWER

SELECT LCASE(str_field) FROM table

Mengonversi string menjadi huruf kecil.

Fungsi string

UCASE or UPPER

SELECT UCASE(str_field) FROM table

Mengonversi string menjadi huruf kapital.

Fungsi string

CHAR_LENGTH or CHARACTER_LENGTH

SELECT CHAR_LENGTH(str_field) FROM table

Mengembalikan panjang string dalam byte.

Fungsi string

TRIM

SELECT TRIM(str_field) FROM table

Menghapus spasi di awal dan akhir string.

Fungsi string

SPACE

SELECT SPACE(num_field) FROM table

Mengembalikan string dengan jumlah spasi tertentu.

Fungsi string

LEFT

SELECT LEFT(str_field, 3) FROM table

Mengekstrak karakter dari sisi kiri string.

Fungsi string

RIGHT

SELECT RIGHT(str_field, 3) FROM table

Mengekstrak karakter dari sisi kanan string.

Fungsi string

REPEAT

SELECT REPEAT(str_field, 3) FROM table

Mengulang string sejumlah kali tertentu.

Fungsi string

REPLACE

SELECT REPLACE(str_field, "SQL", "HTML") FROM table

Mengganti semua kemunculan substring dengan substring lain.

Fungsi string

POSITION

SELECT POSITION("test" IN str_field) FROM table

Mengembalikan posisi kemunculan pertama substring.

Fungsi string

REVERSE

SELECT REVERSE(str_test) from table

Mengembalikan string yang dibalik.

Fungsi string

LPAD

SELECT LPAD(str_field, 20, "ABC") FROM table

Menambahkan karakter tertentu di sebelah kiri string hingga mencapai panjang tertentu.

Fungsi string

CONCAT

SELECT CONCAT(str_field,'test') FROM table

Anda dapat menggabungkan dua atau lebih ekspresi.

Fungsi string

SUBSTRING

SELECT SUBSTRING(str_field, 5, 3) FROM table

Mengekstrak substring mulai dari posisi apa pun.

Fungsi tanggal

CURRENT_DATE

SELECT CURRENT_DATE() FROM table

Mengembalikan tanggal saat ini.

Fungsi tanggal

CURRENT_TIME

SELECT CURRENT_TIME() FROM table

Mengembalikan waktu saat ini.

Fungsi tanggal

CURRENT_TIMESTAMP

SELECT CURRENT_TIMESTAMP() FROM table

Mengembalikan tanggal dan waktu saat ini.

Fungsi tanggal

DAYNAME

SELECT DAYNAME(date_field) FROM table

Mengembalikan nama hari dalam minggu untuk suatu tanggal.

Fungsi tanggal

DAYOFMONTH

SELECT DAYOFMONTH(date_field) FROM table

Mengembalikan bulan dari tanggal yang ditentukan.

Fungsi tanggal

DAYOFYEAR

SELECT DAYOFYEAR(date_field) FROM table

Mengembalikan hari dalam tahun untuk suatu tanggal.

Fungsi tanggal

DAYOFWEEK

SELECT DAYOFWEEK(date_field) FROM table

Mengembalikan indeks hari dalam minggu untuk suatu tanggal.

Fungsi tanggal

HOUR

SELECT HOUR(date_field) FROM table

Mengembalikan bagian jam dari suatu tanggal.

Fungsi tanggal

MINUTE

SELECT MINUTE(date_field) FROM table

Mengembalikan bagian menit dari waktu atau datetime.

Fungsi tanggal

SECOND

SELECT SECOND(date_field) FROM table

Mengembalikan bagian detik dari waktu atau datetime.

Fungsi tanggal

YEAR

SELECT YEAR(date_field) FROM table

Mengembalikan bagian tahun dari suatu tanggal.

Fungsi tanggal

MONTH

SELECT MONTH(date_field) FROM table

Mengembalikan bagian bulan dari suatu tanggal.

Fungsi tanggal

WEEK

SELECT WEEK(date_field) FROM table

Mengembalikan nomor minggu untuk suatu tanggal (1–54). MySQL menggunakan 0–53.

Fungsi tanggal

MONTHNAME

SELECT MONTHNAME(date_field) FROM table

Mengembalikan nama bulan untuk suatu tanggal.

Fungsi tanggal

LAST_DAY

SELECT LAST_DAY(date_field) FROM table

Mengembalikan hari terakhir dalam bulan untuk suatu tanggal.

Fungsi tanggal

QUARTER

SELECT QUARTER(date_field) FROM table

Mengembalikan kuartal untuk suatu tanggal.

Fungsi tanggal

EXTRACT

SELECT EXTRACT(MONTH FROM date_field) FROM table

Mengembalikan bagian tertentu dari tanggal atau waktu, seperti tahun, bulan, hari, jam, atau menit.

Fungsi tanggal

DATE_FORMAT

SELECT DATE_FORMAT(date_field,'yyyy') from date_test

Memformat tanggal atau waktu.

Fungsi agregasi

MIN

SELECT MIN(num_field) FROM table

Mengembalikan nilai minimum dalam suatu set.

Fungsi agregasi

MAX

SELECT MAX(num_field) FROM table

Mengembalikan nilai maksimum dalam suatu set.

Fungsi agregasi

AVG

SELECT AVG(num_field) FROM table

Mengembalikan nilai rata-rata dalam suatu set.

Fungsi agregasi

SUM

SELECT SUM(num_field) FROM table

Mengembalikan jumlah nilai dalam suatu set.

Fungsi agregasi

COUNT

SELECT COUNT(num_field) FROM table

Mengembalikan jumlah catatan yang sesuai dengan suatu kondisi.

Fungsi lanjutan

CASE

SELECT * FROM table ORDER BY(CASE WHEN exp1 THEN exp2 ELSE exp3 END)

Gunakan CASE WHEN THEN ELSE END. Mengembalikan nilai di THEN ketika kondisi di WHEN terpenuhi. Jika tidak, mengembalikan nilai di ELSE. Anda dapat menggunakannya dalam klausa SELECT, WHERE, dan ORDER. Fungsinya mirip IF THEN ELSE.