Exemple de fonctions d'agrégation

RappelSchéma relationnel

1
country(#countrycode:char(2), name:varchar, population:numeric) 
2
city(#code:char(3), countrycode=>country, name:varchar, population:numeric):

Agrégat avec un attribut d'agrégation et une fonction d'agrégation

Requête sans agrégat

Sélectionne les countrycode et les citycode existants dans la table city.

1
SELECT countrycode, citycode  
2
FROM city;
1
 countrycode | citycode 
2
-------------+----------
3
 ES          | BAR
4
 ES          | MAD
5
 ES          | ZAR
6
 FR          | PAR
7
 FR          | LYO
8
 FR          | LLL
9
 FR          | AMN

Requête avec agrégat

  • Sélectionne les countrycode et les citycode existants dans la table city,

  • puis agrège par valeurs distinctes de countrycode.

1
SELECT countrycode, count(citycode)  
2
FROM city
3
GROUP BY countrycode;
1
 countrycode | count 
2
-------------+-------
3
 FR          |     4
4
 ES          |     3
Regroupement avec fonction d'agrégationInformations[1]

Agrégat avec un attribut d'agrégation et deux fonctions d'agrégation

Sélectionne les countrycode, les citycode et les populations existants dans la table city.

1
SELECT countrycode, citycode, population  
2
FROM city;
1
 countrycode | citycode | population 
2
-------------+----------+------------
3
 ES          | BAR      |        1.9
4
 ES          | MAD      |        3.3
5
 ES          | ZAR      |        0.7
6
 FR          | PAR      |        2.2
7
 FR          | LYO      |        0.5
8
 FR          | LLL      |        0.2
9
 FR          | AMN      |        0.1

Requête avec agrégat

  • Sélectionne les countrycode, les citycode et les populations existants dans la table city,

  • puis agrège par valeurs distinctes de countrycode

  • puis calcule les fonctions count et sum.

1
SELECT countrycode, count(citycode), sum(population)  
2
FROM city
3
GROUP BY countrycode;
1
 countrycode | count | sum 
2
-------------+-------+-----
3
 FR          |     4 | 3.0
4
 ES          |     3 | 5.9
Regroupement avec deux fonctions d'agrégationInformations[2]

Agrégat sans attribut d'agrégation et avec une fonction d'agrégation

Requête sans agrégat

Sélectionne les populations existants dans la table city.

1
SELECT population  
2
FROM city;
1
 population 
2
------------
3
        1.9
4
        3.3
5
        0.7
6
        2.2
7
        0.5
8
        0.2
9
        0.1

Requête avec agrégat

  • Sélectionne les populations existants dans la table city,

  • puis calcule la fonction avg (pour average, moyenne).

1
SELECT avg(population)  
2
FROM city;
1
        avg         
2
--------------------
3
 1.2714285714285714
Regroupement avec fonction d'agrégation sans GROUP BYInformations[3]