全部产品
Search
文档中心

AnalyticDB:Fungsi Agregat

更新时间:Jun 26, 2025

Anda dapat menggunakan fungsi agregat untuk melakukan perhitungan ringkasan pada satu set data. Topik ini menjelaskan sintaksis fungsi agregat dan memberikan contoh penggunaannya dalam AnalyticDB for MySQL.

AnalyticDB for MySQL mendukung fungsi agregat berikut:

  • ARBITRARY: Mengembalikan nilai acak dari satu set data.

  • AVG: Menghitung nilai rata-rata dari satu set nilai numerik.

  • BIT_AND: Mengembalikan hasil operasi bitwise AND pada semua bit dari nilai input.

  • BIT_OR: Mengembalikan hasil operasi bitwise OR pada semua bit dari nilai input.

  • BIT_XOR: Mengembalikan hasil operasi bitwise XOR pada semua bit dari nilai input.

  • COUNT: Menghitung jumlah rekaman yang dikembalikan oleh kueri SELECT.

  • MAX: Menghitung nilai maksimum dari satu set nilai numerik.

  • MIN: Menghitung nilai minimum dari satu set nilai numerik.

  • STD, STDDEV, atau STDDEV_POP: Mengembalikan deviasi standar populasi dari semua nilai input.

  • STDDEV_SAMP: Mengembalikan deviasi standar sampel dari satu set bilangan bulat, desimal, atau floating-point.

  • SUM: Menghitung jumlah dari semua nilai input.

  • VARIANCE (fungsi SQL non-standar): Mengembalikan variansi standar populasi dari satu set bilangan bulat, desimal, atau floating-point.

  • VAR_POP (fungsi SQL standar): Mengembalikan variansi standar populasi dari satu set bilangan bulat, desimal, atau floating-point.

  • VAR_SAMP: Mengembalikan variansi sampel dari satu set bilangan bulat, desimal, atau floating-point.

  • GROUP_CONCAT: Mengembalikan hasil string dari nilai-nilai yang digabungkan dari sebuah grup. Nilai berasal dari hasil yang dikembalikan oleh klausa GROUP BY.

Catatan

Dalam topik ini, tabel bernama testtable digunakan di semua fungsi agregat kecuali fungsi GROUP_CONCAT(). Pernyataan berikut digunakan untuk membuat tabel:

CREATE TABLE testtable(a INT) DISTRIBUTED BY HASH(a);

Pernyataan berikut digunakan untuk menyisipkan data uji ke dalam tabel testtable:

INSERT INTO testtable VALUES (1),(2),(3);

ARBITRARY

arbitrary(x)
  • Deskripsi: Fungsi ini mengembalikan nilai acak dari satu set data.

  • Tipe data nilai input: Semua tipe data.

  • Tipe data nilai pengembalian: Sesuai dengan tipe data nilai input fungsi ini.

  • Contoh

    SELECT arbitrary(a) FROM testtable;

    Informasi berikut dikembalikan:

    +--------------+
    | arbitrary(a) |
    +--------------+
    |            2 |
    +--------------+

AVG

avg(x)              
  • Deskripsi: Fungsi ini menghitung nilai rata-rata dari satu set nilai numerik.

  • Tipe data nilai input: BIGINT, DOUBLE, atau FLOAT.

  • Tipe data nilai pengembalian: DOUBLE.

  • Contoh

    SELECT avg(a) FROM testtable;

    Informasi berikut dikembalikan:

    +--------+
    | avg(a) |
    +--------+
    |    2.0 |
    +--------+

BIT_AND

bit_and(x)
  • Deskripsi: Fungsi ini mengembalikan hasil operasi bitwise AND pada semua bit dari nilai input.

  • Tipe data nilai input: BIGINT, DOUBLE, atau FLOAT.

  • Tipe data nilai pengembalian: BIGINT.

  • Contoh

    SELECT bit_and(a) FROM testtable;

    Informasi berikut dikembalikan:

    +------------+
    | bit_and(a) |
    +------------+
    |          0 |
    +------------+

BIT_OR

bit_or(x)
  • Deskripsi: Fungsi ini mengembalikan hasil operasi bitwise OR pada semua bit dari nilai input.

  • Tipe data nilai input: BIGINT, DOUBLE, atau FLOAT.

  • Tipe data nilai pengembalian: BIGINT.

  • Contoh

    SELECT bit_or(a) FROM testtable;

    Informasi berikut dikembalikan:

    +-----------+
    | bit_or(a) |
    +-----------+
    |         3 |
    +-----------+

BIT_XOR

bit_xor(x)
  • Deskripsi: Fungsi ini mengembalikan hasil operasi bitwise XOR pada semua bit dari nilai input.

  • Tipe data nilai input: BIGINT, DOUBLE, atau FLOAT.

  • Tipe data nilai pengembalian: BIGINT.

  • Contoh

    SELECT bit_xor(a) FROM testtable;

    Informasi berikut dikembalikan:

    +------------+
    | bit_xor(a) |
    +------------+
    |          0 |
    +------------+

COUNT

count([distinct|all] x)             
  • Deskripsi: Fungsi ini menghitung jumlah rekaman yang dikembalikan oleh kueri SELECT.

    Catatan

    Deskripsi: distinct dan all menentukan apakah akan menghapus rekaman duplikat selama penghitungan. Nilai defaultnya adalah all, yang menentukan bahwa semua rekaman dihitung. Jika distinct ditentukan, hanya rekaman dengan nilai unik yang dihitung.

  • Tipe data nilai input: NUMERIC, STRING, atau BOOLEAN.

  • Tipe data nilai pengembalian: BIGINT.

  • Contoh

    • Menghitung jumlah rekaman yang nilainya unik di kolom a tabel testtable.

      SELECT count(distinct a) FROM testtable;

      Informasi berikut dikembalikan:

      +-------------------+
      | count(distinct a) |
      +-------------------+
      |                 3 |
      +-------------------+
    • Menghitung jumlah semua rekaman di tabel testtable berdasarkan nilai di kolom a.

      SELECT count(all a) FROM testtable;                 

      Informasi berikut dikembalikan:

      +--------------+
      | count(all a) |
      +--------------+
      |            3 |
      +--------------+

MAX

max(x)               
  • Deskripsi: Fungsi ini menghitung nilai maksimum dari satu set nilai numerik.

  • Tipe data nilai input: Semua tipe data. Namun, data bertipe BOOLEAN tidak termasuk dalam perhitungan.

    Catatan

    Jika nilai di kolom tertentu adalah NULL, baris yang berisi nilai tersebut tidak termasuk dalam perhitungan.

  • Tipe data nilai pengembalian: Sesuai dengan tipe data nilai input fungsi ini.

  • Contoh

    SELECT max(a) FROM testtable;

    Informasi berikut dikembalikan:

    +--------+
    | max(a) |
    +--------+
    |      3 |
    +--------+

MIN

min(value x)               
  • Deskripsi: Fungsi ini menghitung nilai minimum dari satu set nilai numerik.

  • Tipe data nilai input: Semua tipe data. Namun, data bertipe BOOLEAN tidak termasuk dalam perhitungan.

    Catatan

    Jika nilai di kolom tertentu adalah NULL, baris yang berisi nilai tersebut tidak termasuk dalam perhitungan.

  • Tipe data nilai pengembalian: Sesuai dengan tipe data nilai input fungsi ini.

  • Contoh

    SELECT min(a) FROM testtable;

    Informasi berikut dikembalikan:

    +--------+
    | min(a) |
    +--------+
    |      1 |
    +--------+

STD, STDDEV, atau STDDEV_POP

std(x)
stddev(x)
stddev_pop(x)
  • Deskripsi: Fungsi ini mengembalikan deviasi standar populasi dari semua nilai input.

  • Tipe data nilai input: BIGINT atau DOUBLE.

  • Tipe data nilai pengembalian: DOUBLE.

  • Contoh

    • Contoh 1:

      SELECT std(a) FROM testtable;

      Informasi berikut dikembalikan:

      +-------------------+
      | std(a)            |
      +-------------------+
      | 0.816496580927726 |
      +-------------------+
    • Contoh 2:

      SELECT stddev_pop(a) FROM testtable;

      Informasi berikut dikembalikan:

      +-------------------+
      | stddev_pop(a)     |
      +-------------------+
      | 0.816496580927726 |
      +-------------------+

STDDEV_SAMP

stddev_samp(x)
  • Deskripsi: Fungsi ini mengembalikan deviasi standar sampel dari satu set bilangan bulat, desimal, atau floating-point.

  • Tipe data nilai input: BIGINT atau DOUBLE.

  • Tipe data nilai pengembalian: DOUBLE.

  • Contoh

    SELECT stddev_samp(a) FROM testtable;

    Informasi berikut ini dikembalikan:

    +----------------+
    | stddev_samp(a) |
    +----------------+
    |            1.0 |
    +----------------+

SUM

sum(x)
  • Deskripsi: Fungsi ini menghitung jumlah dari semua nilai input.

  • Tipe data nilai input: BIGINT, DOUBLE, atau FLOAT.

  • Tipe data nilai pengembalian: BIGINT.

  • Contoh

    SELECT sum(a) FROM testtable;

    Informasi berikut dikembalikan:

    +--------+
    | sum(a) |
    +--------+
    |      6 |
    +--------+

VARIANCE

variance(x)
  • Deskripsi: Fungsi ini mengembalikan variansi standar populasi dari satu set bilangan bulat, desimal, atau floating-point.

    Catatan
    • Fungsi VARIANCE() mengabaikan baris yang memiliki nilai NULL. Jika semua nilai dalam satu set adalah NULL, fungsi VARIANCE() langsung mengembalikan NULL.

    • Fungsi VARIANCE() adalah ekstensi terhadap SQL standar dan dapat digantikan oleh fungsi SQL standar VAR_POP().

  • Tipe data nilai input: BIGINT atau DOUBLE.

  • Tipe data nilai pengembalian: DOUBLE.

  • Contoh

    SELECT variance(a)  FROM testtable;
    +----------------------------+
    |         variance(a)        |
    +----------------------------+
    |    0.6666666666666666      |               

VAR_POP

var_pop(x)
  • Deskripsi: Fungsi ini mengembalikan variansi standar populasi dari satu set bilangan bulat, desimal, atau floating-point.

    Catatan
    • Fungsi VAR_POP() mengabaikan baris yang memiliki nilai NULL. Jika semua nilai dalam satu set adalah NULL, fungsi VAR_POP() langsung mengembalikan NULL.

    • Anda juga dapat menggunakan fungsi VARIANCE(), yang setara dengan fungsi VAR_POP() tetapi bukan fungsi SQL standar.

  • Tipe data nilai input: BIGINT atau DOUBLE.

  • Tipe data nilai pengembalian: DOUBLE.

  • Contoh

    SELECT var_pop(a) FROM testtable;

    Informasi berikut dikembalikan:

    +--------------------+
    | var_pop(a)         |
    +--------------------+
    | 0.6666666666666666 |
    +--------------------+

VAR_SAMP

var_samp(x)
  • Deskripsi: Fungsi ini mengembalikan variansi sampel dari satu set bilangan bulat, desimal, atau floating-point.

  • Tipe data nilai input: BIGINT atau DOUBLE.

  • Tipe data nilai pengembalian: DOUBLE.

  • Contoh

    SELECT var_samp(a)  FROM testtable;

    Informasi berikut dikembalikan:

    +-------------+
    | var_samp(a) |
    +-------------+
    |         1.0 |
    +-------------+

GROUP_CONCAT

GROUP_CONCAT([DISTINCT] col_name
             [ORDER BY col_name [ASC | DESC]]
             [SEPARATOR str_val])

Klausa

Wajib

Deskripsi

DISTINCT

Tidak

Menentukan kolom dari mana Anda ingin menghapus duplikat.

ORDER BY

Menentukan kolom yang ingin Anda urutkan dalam grup. Metode pengurutan berikut didukung:

  • ASC: urutan menaik.

  • DESC: urutan menurun.

Jika Anda tidak menentukan metode pengurutan, urutan menaik digunakan.

SEPARATOR

Menentukan pemisah yang digunakan untuk memisahkan nilai dalam grup.

Jika Anda tidak menentukan pemisah, koma (,) digunakan.

  • Deskripsi: Fungsi ini mengembalikan hasil string dari nilai-nilai yang digabungkan dari sebuah grup. Nilai berasal dari hasil yang dikembalikan oleh klausa GROUP BY.

    Catatan

    NULL hanya dikembalikan jika semua nilai di kolom yang ingin Anda gabungkan menggunakan fungsi GROUP_CONCAT() adalah NULL.

  • Tipe data nilai input: STRING.

  • Tipe data nilai pengembalian: STRING.

  • Contoh:

    Buat tabel bernama person yang menggunakan fungsi GROUP_CONCAT().

    CREATE TABLE person(id INT,name VARCHAR,age INT ) DISTRIBUTED BY HASH(id);

    Sisipkan data ke dalam tabel.

    INSERT INTO person VALUES (1,'mary',13),(2,'eva',14),(2,'adam',13),(3,'eva',13),(3,null,13),(3,null,null),(4,null,13),(4,null,null);

    Kelompokkan tabel person berdasarkan kolom id. Gunakan fungsi GROUP_CONCAT() untuk menampilkan nilai unik dari kolom name dengan ID yang sama, urutkan tabel secara menurun berdasarkan kolom name, dan pisahkan nilai kolom name dengan tanda pagar (#) di setiap grup.

    SELECT
      id,
      GROUP_CONCAT(DISTINCT name ORDER BY name DESC SEPARATOR '#')
    FROM person 
      GROUP BY id;

    Informasi berikut dikembalikan:

    +------+--------------------------------------------------------------+
    | id   | GROUP_CONCAT(DISTINCT name ORDER BY name DESC SEPARATOR '#') |
    +------+--------------------------------------------------------------+
    |    2 | eva#adam                                                     |
    |    1 | mary                                                         |
    |    4 | NULL                                                         |
    |    3 | eva                                                          |
    +------+--------------------------------------------------------------+