Tous les produits
Search
Centre de documentation

Lindorm:Fonctions d'agrégation

Dernière mise à jour :Aug 11, 2026

Lindorm SQL prend en charge les fonctions d'agrégation pour calculer des résumés sur plusieurs lignes : totaux, moyennes, extrêmes et chaînes concaténées.

Moteurs et versions applicables

Moteur Version
LindormTable Toutes les versions
LindormTSDB V3.4.7 et ultérieures
Les fonctions HEAD et GROUP_CONCAT nécessitent LindormTable 2.7.9 ou version ultérieure, ainsi que Lindorm SQL 2.8.8.0 ou version ultérieure.

Fonctions

Fonction Description Version requise
AVG Renvoie la moyenne de toutes les valeurs d'une colonne Toutes les versions
COUNT Renvoie le nombre de valeurs non vides dans une colonne, ou le nombre total de lignes Toutes les versions
MAX Renvoie la valeur maximale d'une colonne Toutes les versions
MIN Renvoie la valeur minimale d'une colonne Toutes les versions
SUM Renvoie la somme des valeurs d'une colonne Toutes les versions
HEAD Renvoie la première valeur non vide d'une colonne ou d'une expression, avec un ordre de tri facultatif LindormTable 2.7.9+, Lindorm SQL 2.8.8.0+
GROUP_CONCAT Concatène les valeurs de colonne au sein de chaque groupe en une seule chaîne LindormTable 2.7.9+, Lindorm SQL 2.8.8.0+

Exemple de table

Les exemples de cette rubrique utilisent la table sensor suivante :

-- Create a table named 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)
);

-- Write multiple rows of data at the same time.
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

Renvoie la moyenne de toutes les valeurs de la colonne spécifiée.

Syntaxe

AVG(column_name)

Paramètres

Paramètre Description
column_name La colonne dont il faut calculer la moyenne. Doit être de type de données numérique.

Exemple

Calculez la température moyenne pour tous les appareils :

SELECT AVG(temperature) AS temperature FROM sensor;

Résultat :

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

COUNT

Renvoie le nombre de valeurs non vides dans la colonne spécifiée, ou le nombre total de lignes lorsque la fonction est appelée avec *.

Syntaxe

COUNT(* | column_name)

Paramètres

Paramètre Description
column_name La colonne dans laquelle il faut compter les valeurs non vides.
* Compte toutes les lignes, y compris celles contenant des valeurs nulles.

Exemples

Comptez le nombre de relevés de température :

SELECT COUNT(temperature) AS temperature FROM sensor;

Résultat :

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

Comptez les lignes où device_id est égal à F07A1260 :

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

Résultat :

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

Comptez toutes les lignes de la table :

SELECT COUNT(*) FROM sensor;

Résultat :

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

MAX

Renvoie la valeur maximale de la colonne spécifiée.

Syntaxe

MAX(column_name)

Paramètres

Paramètre Description
column_name La colonne à évaluer.

Exemple

Obtenez la température la plus élevée enregistrée sur tous les appareils :

SELECT MAX(temperature) FROM sensor;

Résultat :

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

MIN

Renvoie la valeur minimale de la colonne spécifiée.

Syntaxe

MIN(column_name)

Paramètres

Paramètre Description
column_name La colonne à évaluer.

Exemple

Obtenez la température la plus basse enregistrée sur tous les appareils :

SELECT MIN(temperature) FROM sensor;

Résultat :

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

SUM

Renvoie la somme des valeurs de la colonne spécifiée.

Syntaxe

SUM(column_name)

Paramètres

Paramètre Description
column_name La colonne dont il faut calculer la somme. Doit être de type de données numérique.

Exemple

Calculez le total de tous les relevés de température :

SELECT SUM(temperature) FROM sensor;

Résultat :

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

HEAD

Renvoie la première valeur non vide de la colonne ou de l'expression spécifiée par expr1. Les lignes sont triées selon expr2 avant la sélection de la première valeur. Si expr2 est omis, les lignes sont triées selon la première colonne de clé primaire.

Important

LindormTable 2.7.9 ou version ultérieure et Lindorm SQL 2.8.8.0 ou version ultérieure sont requis. Vérifiez vos versions actuelles dans la console : Notes de version de LindormTable et Description de la version de Lindorm SQL. Pour effectuer une mise à niveau, consultez la section Mettre à jour la version mineure du moteur d'une instance LindormTable.

Syntaxe

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

Paramètres

Paramètre Description
expr1 La colonne ou l'expression à partir de laquelle il faut récupérer la première valeur non vide. Types de données pris en charge : INTEGER, BIGINT, SMALLINT, TINYINT, FLOAT, DOUBLE, DECIMAL, BOOLEAN, VARCHAR, CHAR, TIMESTAMP, JSON et GEOMETRY.
expr2 La colonne ou l'expression servant au tri. Si elle est omise, les lignes sont triées selon la première colonne de clé primaire. Ne peut pas être une autre fonction d'agrégation — par exemple, HEAD(c1 ORDER BY COUNT(c2)) n'est pas pris en charge.

Exemples

Obtenez les températures minimales et maximales en utilisant un tri croissant et décroissant :

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

Résultat :

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

Obtenez la température de l'appareil dont l'device_id est le plus court :

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

Résultat :

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

GROUP_CONCAT

Regroupe les lignes selon les colonnes spécifiées dans une clause GROUP BY, trie les valeurs au sein de chaque groupe et les concatène en une seule chaîne.

Important

LindormTable 2.7.9 ou version ultérieure et Lindorm SQL 2.8.8.0 ou version ultérieure sont requis. Vérifiez vos versions actuelles dans la console : Notes de version de LindormTable et Description de la version de Lindorm SQL. Pour effectuer une mise à niveau, consultez la section Mettre à jour la version mineure du moteur d'une instance LindormTable.

Syntaxe

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

Les mots-clés DISTINCT et ORDER BY ne peuvent pas être utilisés conjointement dans le même appel de fonction GROUP_CONCAT.

Paramètres

Paramètre Description
expr La colonne de projection à concaténer.
col_name La colonne de tri.
str_val Le séparateur entre les valeurs concaténées.

Exemples

Les exemples suivants utilisent la table t1 :

-- Create a sample table named t1.
CREATE TABLE t1 (p1 INT, p2 VARCHAR, c1 INT, c2 VARCHAR, c3 DOUBLE, PRIMARY KEY(p1, p2));

-- Insert data into the table.
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);

Exemple 1 : Concaténez les valeurs de c1 groupées par p1 :

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

Résultat :

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

Exemple 2 : Concaténez les valeurs distinctes de c1 groupées par p1 :

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

Résultat :

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

Exemple 3 : Concaténez les valeurs de c1 groupées par p1, triées par ordre croissant selon c1 :

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

Résultat :

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

Exemple 4 : Concaténez les valeurs de c1 groupées par p1, triées par ordre décroissant selon c3 :

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

Résultat :

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

Exemple 5 : Identique à l'exemple 4, mais avec un séparateur pipe (|) :

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

Résultat :

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