All Products
Search
Document Center

Lindorm:Fungsi agregat

Last Updated:Mar 29, 2026

Lindorm SQL mendukung fungsi agregat untuk menghitung ringkasan lintas baris—seperti total, rata-rata, nilai ekstrem, dan string yang digabungkan.

Mesin dan versi yang berlaku

MesinVersi
LindormTableSemua versi
LindormTSDBV3.4.7 dan yang lebih baru
HEAD dan GROUP_CONCAT memerlukan LindormTable 2.7.9 atau yang lebih baru serta Lindorm SQL 2.8.8.0 atau yang lebih baru.

Fungsi

FungsiDeskripsiPersyaratan versi
AVGMengembalikan rata-rata dari semua nilai dalam suatu kolomSemua versi
COUNTMengembalikan jumlah nilai tidak kosong dalam suatu kolom, atau jumlah total barisSemua versi
MAXMengembalikan nilai maksimum dalam suatu kolomSemua versi
MINMengembalikan nilai minimum dalam suatu kolomSemua versi
SUMMengembalikan jumlah nilai dalam suatu kolomSemua versi
HEADMengembalikan nilai pertama yang tidak kosong dalam suatu kolom atau ekspresi, dengan urutan pengurutan opsionalLindormTable 2.7.9+, Lindorm SQL 2.8.8.0+
GROUP_CONCATMenggabungkan nilai kolom dalam setiap kelompok menjadi satu stringLindormTable 2.7.9+, Lindorm SQL 2.8.8.0+

Tabel contoh

Contoh dalam topik ini menggunakan tabel sensor berikut:

-- Buat tabel bernama sensor.
CREATE TABLE sensor(
    device_id VARCHAR NOT NULL,
    region VARCHAR NOT NULL,
    time TIMESTAMP NOT NULL,
    temperature DOUBLE,
    humidity BIGINT,
    PRIMARY KEY(device_id, region, time)
);

-- Tulis beberapa baris data sekaligus.
UPSERT INTO sensor(device_id ,region ,time,temperature) VALUES('F07A1260','north-cn','2021-04-22 15:33:20',10.6), ('F07A1261','south-cn','2021-04-22 15:33:00',18.1), ('F07A1261','south-cn','2021-04-22 15:33:10',19.7);

AVG

Mengembalikan rata-rata dari semua nilai dalam kolom yang ditentukan.

Sintaks

AVG(column_name)

Parameter

ParameterDeskripsi
column_nameKolom yang akan dirata-ratakan. Harus bertipe data numerik.

Contoh

Hitung rata-rata suhu di seluruh perangkat:

SELECT AVG(temperature) AS temperature FROM sensor;

Output:

+--------------------+
| temperature        |
+--------------------+
| 16.133333333333333 |
+--------------------+

COUNT

Mengembalikan jumlah nilai tidak kosong dalam kolom yang ditentukan, atau jumlah total baris saat dipanggil dengan *.

Sintaks

COUNT(* | column_name)

Parameter

ParameterDeskripsi
column_nameKolom tempat menghitung nilai tidak kosong.
*Menghitung semua baris, termasuk baris dengan nilai null.

Contoh

Hitung jumlah pembacaan suhu:

SELECT COUNT(temperature) AS temperature FROM sensor;

Output:

+-------------+
| temperature |
+-------------+
| 3           |
+-------------+

Hitung baris di mana device_id adalah F07A1260:

SELECT COUNT(*) FROM sensor WHERE device_id = 'F07A1260';

Output:

+--------+
| EXPR$0 |
+--------+
| 1      |
+--------+

Hitung semua baris dalam tabel:

SELECT COUNT(*) FROM sensor;

Output:

+--------+
| EXPR$0 |
+--------+
| 3      |
+--------+

MAX

Mengembalikan nilai maksimum dalam kolom yang ditentukan.

Sintaks

MAX(column_name)

Parameter

ParameterDeskripsi
column_nameKolom yang akan dievaluasi.

Contoh

Ambil suhu tertinggi yang tercatat di seluruh perangkat:

SELECT MAX(temperature) FROM sensor;

Output:

+--------+
| EXPR$0 |
+--------+
| 19.7   |
+--------+

MIN

Mengembalikan nilai minimum dalam kolom yang ditentukan.

Sintaks

MIN(column_name)

Parameter

ParameterDeskripsi
column_nameKolom yang akan dievaluasi.

Contoh

Ambil suhu terendah yang tercatat di seluruh perangkat:

SELECT MIN(temperature) FROM sensor;

Output:

+--------+
| EXPR$0 |
+--------+
| 10.6   |
+--------+

SUM

Mengembalikan jumlah nilai dalam kolom yang ditentukan.

Sintaks

SUM(column_name)

Parameter

ParameterDeskripsi
column_nameKolom yang akan dijumlahkan. Harus bertipe data numerik.

Contoh

Hitung total semua pembacaan suhu:

SELECT SUM(temperature) FROM sensor;

Output:

+--------+
| EXPR$0 |
+--------+
| 48.4   |
+--------+

HEAD

Mengembalikan nilai pertama yang tidak kosong dalam kolom atau ekspresi yang ditentukan oleh expr1. Baris diurutkan berdasarkan expr2 sebelum memilih nilai pertama. Jika expr2 dihilangkan, baris diurutkan berdasarkan kolom kunci primer pertama.

Penting

Diperlukan LindormTable 2.7.9 atau yang lebih baru serta Lindorm SQL 2.8.8.0 atau yang lebih baru. Periksa versi Anda saat ini di Konsol: Catatan rilis LindormTable dan Deskripsi versi Lindorm SQL. Untuk upgrade, lihat Perbarui versi mesin minor instans LindormTable.

Sintaks

HEAD (expr1 [ ORDER BY expr2 [ DESC ] ] )

Parameter

ParameterDeskripsi
expr1Kolom atau ekspresi tempat mengambil nilai pertama yang tidak kosong. Tipe data yang didukung: INTEGER, BIGINT, SMALLINT, TINYINT, FLOAT, DOUBLE, DECIMAL, BOOLEAN, VARCHAR, CHAR, TIMESTAMP, JSON, dan GEOMETRY.
expr2Kolom atau ekspresi untuk pengurutan. Jika dihilangkan, baris diurutkan berdasarkan kolom kunci primer pertama. Tidak boleh merupakan fungsi agregat lain — misalnya, HEAD(c1 ORDER BY COUNT(c2)) tidak didukung.

Contoh

Ambil suhu minimum dan maksimum menggunakan pengurutan menaik dan menurun:

SELECT HEAD(temperature ORDER BY temperature), HEAD(temperature ORDER BY temperature DESC) FROM sensor;

Output:

+--------+--------+
| EXPR$0 | EXPR$1 |
+--------+--------+
| 10.6   | 19.7   |
+--------+--------+

Ambil suhu untuk perangkat dengan device_id terpendek:

SELECT HEAD(temperature ORDER BY LENGTH(device_id)) FROM sensor;

Output:

+--------+
| EXPR$0 |
+--------+
| 10.6   |
+--------+

GROUP_CONCAT

Mengelompokkan baris berdasarkan kolom yang ditentukan dalam klausa GROUP BY, mengurutkan nilai dalam setiap kelompok, lalu menggabungkannya menjadi satu string.

Penting

Diperlukan LindormTable 2.7.9 atau yang lebih baru serta Lindorm SQL 2.8.8.0 atau yang lebih baru. Periksa versi Anda saat ini di Konsol: Catatan rilis LindormTable dan Deskripsi versi Lindorm SQL. Untuk upgrade, lihat Perbarui versi mesin minor instans LindormTable.

Sintaks

GROUP_CONCAT ( [ DISTINCT ] expr (, expr ... )*
             [ ORDER BY col_name [ DESC ] (, col_name [ DESC ])* ]
             [ SEPARATOR str_val ] )
Penting

DISTINCT dan ORDER BY tidak dapat digunakan bersama dalam pemanggilan GROUP_CONCAT yang sama.

Parameter

ParameterDeskripsi
exprKolom proyeksi yang akan digabungkan.
col_nameKolom pengurutan.
str_valPemisah antara nilai yang digabungkan.

Contoh

Contoh berikut menggunakan tabel t1:

-- Buat tabel contoh bernama t1.
CREATE TABLE t1 (p1 INT, p2 VARCHAR, c1 INT, c2 VARCHAR, c3 DOUBLE, PRIMARY KEY(p1, p2));

-- Masukkan data ke dalam tabel.
UPSERT INTO t1(p1, p2, c1, c2, c3) VALUES
(1, 'a', 10, 'java', 10.23),
(1, 'b', 10, 'c/c++', 5.76),
(1, 'c', 18, 'python', 8.21),
(2, 'a', 40, 'sql', 3.14),
(2, 'b', 100, 'c#', 4.96),
(2, 'c', 66, 'matlab', 7.01);

Contoh 1: Gabungkan nilai c1 yang dikelompokkan berdasarkan p1:

SELECT p1, GROUP_CONCAT(c1) FROM t1 GROUP BY p1;

Output:

+----+-----------+
| p1 |  EXPR$1   |
+----+-----------+
| 1  | 10,10,18  |
| 2  | 40,100,66 |
+----+-----------+

Contoh 2: Gabungkan nilai c1 unik yang dikelompokkan berdasarkan p1:

SELECT p1, GROUP_CONCAT(DISTINCT c1) FROM t1 GROUP BY p1;

Output:

+----+-----------+
| p1 |  EXPR$1   |
+----+-----------+
| 1  | 18,10     |
| 2  | 100,40,66 |
+----+-----------+

Contoh 3: Gabungkan nilai c1 yang dikelompokkan berdasarkan p1, diurutkan menaik berdasarkan c1:

SELECT p1, GROUP_CONCAT(c1 ORDER BY c1) FROM t1 GROUP BY p1;

Output:

+----+-----------+
| p1 |  EXPR$1   |
+----+-----------+
| 1  | 10,10,18  |
| 2  | 40,66,100 |
+----+-----------+

Contoh 4: Gabungkan nilai c1 yang dikelompokkan berdasarkan p1, diurutkan menurun berdasarkan c3:

SELECT p1, GROUP_CONCAT(c1 ORDER BY c3 DESC) FROM t1 GROUP BY p1;

Output:

+----+-----------+
| p1 |  EXPR$1   |
+----+-----------+
| 1  | 10,18,10  |
| 2  | 66,100,40 |
+----+-----------+

Contoh 5: Sama seperti Contoh 4, tetapi dengan pemisah pipa (|):

SELECT p1, GROUP_CONCAT(c1 ORDER BY c3 DESC SEPARATOR '|') FROM t1 GROUP BY p1;

Output:

+----+-----------+
| p1 |  EXPR$1   |
+----+-----------+
| 1  | 10|18|10  |
| 2  | 66|100|40 |
+----+-----------+