Fichier de rejeu Close

Indication Close

A propos de... Close

Commentaire Close

Systèmes d'Information

  • Notions mathématiques
  • Calcul relationnel
  • Algèbre relationnelle
  • Langage de requêtes
  • Arbre de requêtes
  • QCM
  • Introduction
  • Commandes de bases
  • Langage de définition de données
  • Types de données
  • Requêtes
  • Présentation
  • Calcul relationnel
  • Algèbre relationnelle
  • Division relationnelle
  • Dépendances fonctionnelles
  • Décomposition de relations
  • Inférence logique
  • Normalisation
  • Aux pays des bières
  • Modélisation
  • Exercices
  • Présentation
  • Aux pays des bières
  • Au Tournoi des six nations
  • Salles de concerts
  • Définitions
  • Langage SQL
  • Modèle relationnel
  • Films
  • Repas
  • Repas
Index

Téléchargements

  • Site
  • Sources
  • EniBook
logo

Crédits

© Your Copyright

Aide

En-tête

MenuContenu
Sommaire,
Téléchargements
Aide sur les outils

Pied de page

ChevronAction
Aller en haut de la page courante
Aller en bas de la page courante
Passer à la page précédente
Passer à la page suivante

Groupements

L’objectif de ces exercices est de savoir regrouper le informations et appliquer des fonctions d’agrégat sur ces regroupements « Aux pays des bières ».

4/4 GROUP BY, HAVING
  1. Groupement
    • Question
    • Solution
    Ecrire une requête SQL répondant à la question
    • \(Q_1\) : « Rechercher le nom, la couleur des bières et leur quantité en stock dans la base de données ».
    Votre réponse :
    sql : essai.sql
    
        
    >
    Output
    
                    

    Interpréteur

    MenuAction
    Ré-initialiser les sorties
    Faire apparaître le menu d'aide
    Interpréter le programme

    Editeur

    MenuRaccouciAction
    Ctrl+N Initialiser l'éditeur
    Ctrl+O Charger le contenu d'un fichier dans l'éditeur
    Ctrl+S Sauvegarder le contenu de l'éditeur dans un fichier
    Ctrl+P Imprimer le contenu de l'éditeur
    Ctrl+Z Annuler la dernière modification
    Maj+Ctrl+Z Rétablir la modification précedente
    Ctrl+F Chercher une expression dans l'éditeur
    Maj+Ctrl+F Chercher et remplacer une expression par une autre
    F10 Ouvrir une documentation du langage

    RaccourciAction
    F1 Afficher cette aide
    Tab Indenter la sélection
    Maj+Tab Désindenter la sélection
    Ctrl+A Sélectionner le contenu de l'éditeur
    Ctrl+C Copier la sélection dans le presse-papier
    Ctrl+V Remplacer la sélection par le contenu du presse-papier
    Ctrl+X Supprimer la sélection et la copier dans le presse-papier
    Maj+Ctrl+R Chercher et remplacer une expression par une autre dans tout l'éditeur
    Une solution possible :

    On fait un regroupement (GROUP BY) par nom de bières (biere) et leur couleur

    qui sont servies (\(\Join_{[]}(services, bieres)\)).

    On récupère dans le résultat final les attribut de groupement (code:nom,couleur) et on calcule sur ces regroupements la somme des quantités servies (code:SUM(stock)).

    Ecriture en algèbre relationnelle :

    • \(NJ = \Join_{[]}(services, bieres)\).
    • \(G = G_{[]}^{(biere, couleur,SUM(stock))}(NJ_1)\).
    sql : essai.sql
    
        
    >
    Output
    
                    

    Interpréteur

    MenuAction
    Ré-initialiser les sorties
    Faire apparaître le menu d'aide
    Interpréter le programme

    Editeur

    MenuRaccouciAction
    Ctrl+N Initialiser l'éditeur
    Ctrl+O Charger le contenu d'un fichier dans l'éditeur
    Ctrl+S Sauvegarder le contenu de l'éditeur dans un fichier
    Ctrl+P Imprimer le contenu de l'éditeur
    Ctrl+Z Annuler la dernière modification
    Maj+Ctrl+Z Rétablir la modification précedente
    Ctrl+F Chercher une expression dans l'éditeur
    Maj+Ctrl+F Chercher et remplacer une expression par une autre
    F10 Ouvrir une documentation du langage

    RaccourciAction
    F1 Afficher cette aide
    Tab Indenter la sélection
    Maj+Tab Désindenter la sélection
    Ctrl+A Sélectionner le contenu de l'éditeur
    Ctrl+C Copier la sélection dans le presse-papier
    Ctrl+V Remplacer la sélection par le contenu du presse-papier
    Ctrl+X Supprimer la sélection et la copier dans le presse-papier
    Maj+Ctrl+R Chercher et remplacer une expression par une autre dans tout l'éditeur
  2. Groupement et restriction
    • Question
    • Solution

    Ecrire une requête SQL répondant à la question :

    • \(Q_1\) : « Rechercher le nom des bars, le nombre de bières qu’ils servent et la somme de leur stocks pour les bars qui servent au moins deux bières ».
    Votre réponse :
    sql : essai.sql
    
        
    >
    Output
    
                    

    Interpréteur

    MenuAction
    Ré-initialiser les sorties
    Faire apparaître le menu d'aide
    Interpréter le programme

    Editeur

    MenuRaccouciAction
    Ctrl+N Initialiser l'éditeur
    Ctrl+O Charger le contenu d'un fichier dans l'éditeur
    Ctrl+S Sauvegarder le contenu de l'éditeur dans un fichier
    Ctrl+P Imprimer le contenu de l'éditeur
    Ctrl+Z Annuler la dernière modification
    Maj+Ctrl+Z Rétablir la modification précedente
    Ctrl+F Chercher une expression dans l'éditeur
    Maj+Ctrl+F Chercher et remplacer une expression par une autre
    F10 Ouvrir une documentation du langage

    RaccourciAction
    F1 Afficher cette aide
    Tab Indenter la sélection
    Maj+Tab Désindenter la sélection
    Ctrl+A Sélectionner le contenu de l'éditeur
    Ctrl+C Copier la sélection dans le presse-papier
    Ctrl+V Remplacer la sélection par le contenu du presse-papier
    Ctrl+X Supprimer la sélection et la copier dans le presse-papier
    Maj+Ctrl+R Chercher et remplacer une expression par une autre dans tout l'éditeur
    Une solution possible :

    On fait un regroupement (GROUP BY) par bar servant des bières.

    On ne retient (HAVING) dans ce regroupement que les bars qui servent au moins 2 bières différentes.

    On récupère dans le résultat final le nom des bars, leur nombre de bières et la quantité totale (bar,COUNT(id_biere),SUM(stock)) servie dans ces bars.

    Ecriture en algèbre relationnelle :

    • \(NJ = \Join_{[]}(services, bars)\).
    • \(G = G_{[COUNT(id_biere) > 1]}^{(bar,COUNT(id_biere),SUM(stock))}(NJ)\).
    sql : essai.sql
    
        
    >
    Output
    
                    

    Interpréteur

    MenuAction
    Ré-initialiser les sorties
    Faire apparaître le menu d'aide
    Interpréter le programme

    Editeur

    MenuRaccouciAction
    Ctrl+N Initialiser l'éditeur
    Ctrl+O Charger le contenu d'un fichier dans l'éditeur
    Ctrl+S Sauvegarder le contenu de l'éditeur dans un fichier
    Ctrl+P Imprimer le contenu de l'éditeur
    Ctrl+Z Annuler la dernière modification
    Maj+Ctrl+Z Rétablir la modification précedente
    Ctrl+F Chercher une expression dans l'éditeur
    Maj+Ctrl+F Chercher et remplacer une expression par une autre
    F10 Ouvrir une documentation du langage

    RaccourciAction
    F1 Afficher cette aide
    Tab Indenter la sélection
    Maj+Tab Désindenter la sélection
    Ctrl+A Sélectionner le contenu de l'éditeur
    Ctrl+C Copier la sélection dans le presse-papier
    Ctrl+V Remplacer la sélection par le contenu du presse-papier
    Ctrl+X Supprimer la sélection et la copier dans le presse-papier
    Maj+Ctrl+R Chercher et remplacer une expression par une autre dans tout l'éditeur
  3. Groupement et restriction avec requête imbriquée
    • Question
    • Solution

    Ecrire une requête SQL répondant à la question

    • \(Q_1\) : « Rechercher le nom des pays, le nombre de toutes les bières servies dans ces pays et la somme de leurs stocks, pour les pays dont la quantité de bières est supérieure à la moyenne des stocks mondiaux ».
    Votre réponse :
    sql : essai.sql
    
        
    >
    Output
    
                    

    Interpréteur

    MenuAction
    Ré-initialiser les sorties
    Faire apparaître le menu d'aide
    Interpréter le programme

    Editeur

    MenuRaccouciAction
    Ctrl+N Initialiser l'éditeur
    Ctrl+O Charger le contenu d'un fichier dans l'éditeur
    Ctrl+S Sauvegarder le contenu de l'éditeur dans un fichier
    Ctrl+P Imprimer le contenu de l'éditeur
    Ctrl+Z Annuler la dernière modification
    Maj+Ctrl+Z Rétablir la modification précedente
    Ctrl+F Chercher une expression dans l'éditeur
    Maj+Ctrl+F Chercher et remplacer une expression par une autre
    F10 Ouvrir une documentation du langage

    RaccourciAction
    F1 Afficher cette aide
    Tab Indenter la sélection
    Maj+Tab Désindenter la sélection
    Ctrl+A Sélectionner le contenu de l'éditeur
    Ctrl+C Copier la sélection dans le presse-papier
    Ctrl+V Remplacer la sélection par le contenu du presse-papier
    Ctrl+X Supprimer la sélection et la copier dans le presse-papier
    Maj+Ctrl+R Chercher et remplacer une expression par une autre dans tout l'éditeur
    Une solution possible :

    On fait un regroupement (GROUP BY) par nom de pays des bars servant des bières.

    On ne retient dans ces regroupements que les pays dont la somme des stock de bières de leurs bars est supérieure à la moyenne des stocks mondiaux.

    On obtient dans le résultat final le nom des pays, le nombre de bières et la somme des stock servies dans ces pays.

    Ecriture en algèbre relationnelle :

    • \(NJ = \Join_{[]}(services, bars)\).
    • \(G = G_{[SUM(stock)> (SELECT AVG( stock ) FROM services)]}^{(pays,COUNT(id\_biere),SUM(stock))}(NJ)\).
    sql : essai.sql
    
        
    >
    Output
    
                    

    Interpréteur

    MenuAction
    Ré-initialiser les sorties
    Faire apparaître le menu d'aide
    Interpréter le programme

    Editeur

    MenuRaccouciAction
    Ctrl+N Initialiser l'éditeur
    Ctrl+O Charger le contenu d'un fichier dans l'éditeur
    Ctrl+S Sauvegarder le contenu de l'éditeur dans un fichier
    Ctrl+P Imprimer le contenu de l'éditeur
    Ctrl+Z Annuler la dernière modification
    Maj+Ctrl+Z Rétablir la modification précedente
    Ctrl+F Chercher une expression dans l'éditeur
    Maj+Ctrl+F Chercher et remplacer une expression par une autre
    F10 Ouvrir une documentation du langage

    RaccourciAction
    F1 Afficher cette aide
    Tab Indenter la sélection
    Maj+Tab Désindenter la sélection
    Ctrl+A Sélectionner le contenu de l'éditeur
    Ctrl+C Copier la sélection dans le presse-papier
    Ctrl+V Remplacer la sélection par le contenu du presse-papier
    Ctrl+X Supprimer la sélection et la copier dans le presse-papier
    Maj+Ctrl+R Chercher et remplacer une expression par une autre dans tout l'éditeur
  4. Restriction, groupement et restriction
    • Question
    • Solution

    Ecrire une requête SQL répondant à la question

    • \(Q_1\) : « Rechercher le nom des bars, le nombre de toutes les bières servies dans ces bars et la somme de leurs stocks, pour les bars de “France” ou des “USA” servant plus d’une bière ».
    Votre réponse :
    sql : essai.sql
    
        
    >
    Output
    
                    

    Interpréteur

    MenuAction
    Ré-initialiser les sorties
    Faire apparaître le menu d'aide
    Interpréter le programme

    Editeur

    MenuRaccouciAction
    Ctrl+N Initialiser l'éditeur
    Ctrl+O Charger le contenu d'un fichier dans l'éditeur
    Ctrl+S Sauvegarder le contenu de l'éditeur dans un fichier
    Ctrl+P Imprimer le contenu de l'éditeur
    Ctrl+Z Annuler la dernière modification
    Maj+Ctrl+Z Rétablir la modification précedente
    Ctrl+F Chercher une expression dans l'éditeur
    Maj+Ctrl+F Chercher et remplacer une expression par une autre
    F10 Ouvrir une documentation du langage

    RaccourciAction
    F1 Afficher cette aide
    Tab Indenter la sélection
    Maj+Tab Désindenter la sélection
    Ctrl+A Sélectionner le contenu de l'éditeur
    Ctrl+C Copier la sélection dans le presse-papier
    Ctrl+V Remplacer la sélection par le contenu du presse-papier
    Ctrl+X Supprimer la sélection et la copier dans le presse-papier
    Maj+Ctrl+R Chercher et remplacer une expression par une autre dans tout l'éditeur
    Une solution possible :

    On vérifie d’abord que nous sommes bien en “France” ou au “USA” :

    • \(R = \sigma{[pays ='France' OR pays='USA']}(bars)\)

    On récupère lmes services de bars de ces deuc pays

    • \(NJ = \Join{[]}(services,R)\)

    Puis on fait un regroupement (GROUP BY) par nom (bar) de bars.

    On ne retient dans ce regroupement que les :code:`bars ` dont le nombre de de bières de leurs bars est supérieure à la moyenne des stocks mondiaux.

    On obtient dans le résultat final le nom des pays, le nombre de bières est au moins égal à deux.

    On récupère dans le résultat final le nom des bars, le nombre (COUNT()) de bières qu’ils servent et la somme (SUM()) des stock de bières servies dans ces bars

    • \(G = G_{[SUM(stock)> (SELECT COUNT (id_biere) > 1)]}^{(bar,COUNT(id\_biere),SUM(stock))}(NJ)\).
    sql : essai.sql
    
        
    >
    Output
    
                    

    Interpréteur

    MenuAction
    Ré-initialiser les sorties
    Faire apparaître le menu d'aide
    Interpréter le programme

    Editeur

    MenuRaccouciAction
    Ctrl+N Initialiser l'éditeur
    Ctrl+O Charger le contenu d'un fichier dans l'éditeur
    Ctrl+S Sauvegarder le contenu de l'éditeur dans un fichier
    Ctrl+P Imprimer le contenu de l'éditeur
    Ctrl+Z Annuler la dernière modification
    Maj+Ctrl+Z Rétablir la modification précedente
    Ctrl+F Chercher une expression dans l'éditeur
    Maj+Ctrl+F Chercher et remplacer une expression par une autre
    F10 Ouvrir une documentation du langage

    RaccourciAction
    F1 Afficher cette aide
    Tab Indenter la sélection
    Maj+Tab Désindenter la sélection
    Ctrl+A Sélectionner le contenu de l'éditeur
    Ctrl+C Copier la sélection dans le presse-papier
    Ctrl+V Remplacer la sélection par le contenu du presse-papier
    Ctrl+X Supprimer la sélection et la copier dans le presse-papier
    Maj+Ctrl+R Chercher et remplacer une expression par une autre dans tout l'éditeur
 
Systèmes d'Information : Groupements, 12 févr. 2018.