TME 7: Requêtes d'agrégation et Division

Exercice 1:

On considère le schéma de la base Jeux Olympiques 2014 :

Travail à effectuer: - Connectez-vous au serveur H2 et recharger la base JO_v2

Rappel : pour détruire le schéma de la base courante sous H2

 DROP ALL objects

- Connectez-vous au serveur Oracle (rappel: Connexion oracle) - Charger la base de données JO_v2 en exécutant: <code sql>@vider @jo_v2</code>

Écrivez et évaluez les expressions SQL pour répondre aux requêtes suivantes.

Fonctions d’agrégation « COUNT, SUM, AVG, MIN, MAX »

Solution:

select count(*)
from Athlete;

Résultat attendu (1 ligne) : 2431

Résultat attendu (1 ligne) : 1558

  1. to_date('06/02/2014','dd/mm/YYYY')
  2. round(valeur,nb) pour garder seulement nb décimales à valeur

Résultat attendu (1 ligne) : 26,8

Résultat attendu(1 ligne) : « Durée moyenne = 1,98 min = 1 max = 16 »

Résultat attendu(1 ligne) : 27,625

Partitionnement « group by »

Résultat attendu (88 lignes) : (PAK,1) ; (HKG, 1) ; … ; (USA, 196) ; (CAN,221)

Résultat attendu (1 ligne) : 27,625

Résultat attendu (296 lignes) : (164,25) ; (165,25) ; (166,25) ; … ; (180,2) ; (181, 2) ; (182, 2)

Résultat attendu (3 lignes) : (Femmes,43) ; (Mixte,6) ; (Hommes,49)

Résultat attendu (15 lignes) : (Patinage de vitesse,12) ; (Ski de fond,12) ; … ;(Hockey sur glace,2)

Résultat attendu (24 lignes) : (NOR, 24,19) ; (NED,22,15) ; …

Résultat attendu (84 lignes) : (AUS,12,2,2); (AUS,15,1,1);(AUT,13,9,7);(AUT,15,2,2);…

Partitionnement avec « group by / having »

  1. d'exactement 10 athlètes. Résultat attendu (1 ligne) : 226
  2. du plus d’athlètes pour ces JO. Résultat attendu (3 lignes) : 164 ; 165 ; 166

Résultat attendu (1 ligne ) : 2

Résultat attendu (3 lignes) : Pays-Bas ; États-Unis ; Norvège

Division en SQL

Résultat attendu (3 lignes) : 1 ; 6 ; 7

Exercice 2:

On considère le schéma « Foofle » (la table des distances s'appelle Dist, la table des équipes s'appelle ÉquipeF):

Charger la base de données Foofle.

Rappel : pour détruire le schéma de la base courante sous H2

 DROP ALL objects

<code sql> @vider @foofle </code>

Écrivez les expressions SQL pour répondre aux requêtes suivantes :

Résultat attendu (7 lignes) : (Adadis,6,2340) ; (Robek,5,1426) ;…

Résultat attendu (2 lignes) : Fortiches ; Direkt

Résultat attendu (2 lignes) : Air Monaco ; Palasse

Résultat attendu (4 lignes) : (Fortiches,516) ; (Direkt,671) ; (Piepla,124) ; (Sabar,360)