Exemple de fonctions d'agrégation
Rappel : Sché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
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
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