Déroulement réel des cours

La « pensée » du Disadorn, d'an 20 a viz Ebrel 2019 , 2h51m12s :
Life is like an onion: you peel off layer after layer, then you find there is nothing in it.
1 : semaine du lendi 24 septemb' 2007
 Cours n°1 (Cumul=2h) : [Voir le CM n°1]
 TD n°1 (Cumul=3,5h) : [Voir le TD n°1]
2 : semaine du lendi 1 octob' 2007
 Cours n°2 (Cumul=4h) : [Voir le CM n°2]
 TD n°2 (Cumul=7h) : [Voir le TD n°2]
3 : semaine du lendi 8 octob' 2007
 Cours n°3 (Cumul=6h) : [Voir le CM n°3]
 TD n°3 (Cumul=10,5h) : [Voir le TD n°3]
4 : semaine du lendi 15 octob' 2007
 Cours n°4 (Cumul=8h) : [Voir le CM n°4]
 TD n°4 (Cumul=14h) : [Voir le TD n°4]
5 : semaine du lendi 22 octob' 2007
 Cours n°5 (Cumul=10h) : [Voir le CM n°5]
 TD n°5 (Cumul=17,5h) :

Suite des exercices sur la base Teniraq.

  1. La ville dont les habitants ont gagné le plus de points en étant vainqueurs dans des matchs défis. (1 ligne.)
    SELECT  SUM(scorevainqueur),ville
    FROM  matchs,joueurs,voiries vo,villes vi
    WHERE  refvainqueur=numbadge
    AND  refvoirie=codevoirie
    AND  vo.codepostal=vi.codepostal
    GROUP BY  ville
    ORDER BY  1 DESC
    LIMIT  1 ;
  2. La ville dont les habitants ont gagné le moins de points (vainqueurs et perdants) dans des matchs défis. (1 ligne.)
    SELECT  V.ville,vainqueur+perdant
    FROM  (
       SELECT  SUM(scorevainqueur) AS vainqueur,ville
       FROM  matchs,joueurs,voiries vo,villes vi
       WHERE  refvainqueur=numbadge
       AND  refvoirie=codevoirie
       AND  vo.codepostal=vi.codepostal
       GROUP BY  ville
     ) V,
     (
       SELECT  SUM(scoreperdant) AS perdant,ville
       FROM  matchs,joueurs,voiries vo,villes vi
       WHERE  refvainqueur=numbadge
       AND  refvoirie=codevoirie
       AND  vo.codepostal=vi.codepostal
       GROUP BY  ville
     ) P
    WHERE  P.ville=V.ville
    ORDER BY  2
    LIMIT  1 ;
  3. La ville la plus représentée parmi les joueurs (sans utiliser LIMIT). (1 ligne.)
    SELECT  ville
    FROM  villes vi,voiries vo,joueurs
    WHERE  refvoirie=codevoirie
    AND  vi.codepostal=vo.codepostal
    GROUP  BY ville
    HAVING  COUNT(*) = (SELECT MAX(n) FROM  (SELECT  COUNT(*) AS n
       FROM  villes vi,voiries vo,joueurs
       WHERE  refvoirie=codevoirie
       AND  vi.codepostal=vo.codepostal
       GROUP BY  ville) XX
       ) ;
  4. Afficher la date de dimanche dernier. (1 ligne.)
    SELECT CURRENT_DATE - TO_CHAR(CURRENT_DATE,'D')::INTEGER +1 ;
  5. Numéro de badge, nom et prénom des joueurs, accompagnés de leur date de naissance, leur âge au jour près et leur âge en années, du plus vieux au plus jeune. (292 lignes.)
    SELECT  j.numbadge,nom,prenom,datenaiss,
     AGE(CURRENT_DATE,datenaiss),
     EXTRACT(YEAR FROM AGE(CURRENT_DATE,datenaiss))
    FROM  joueurs j,badges b
    WHERE  j.numbadge=b.numbadge
    ORDER BY  datenaiss ;
  6. Numéro de badge, nom et prénom des joueurs, accompagnés de leur âge et leur catégorie. (292 lignes.)
    SELECT  j.numbadge,nom,prenom,datenaiss,
     EXTRACT(YEAR FROM AGE(CURRENT_DATE,datenaiss)),nomcategorie
    FROM  joueurs j,badges b,categories
    WHERE  j.numbadge=b.numbadge
    AND  EXTRACT(YEAR FROM AGE(CURRENT_DATE,datenaiss)) BETWEEN agemini AND agemaxi-1
    ORDER BY  datenaiss,nom,prenom ;
  7. Liste de tous les matchs du mois d'août 2007, en ordre chronologique, sur trois colonnes « Jour du mois,NOM Prénom du vainqueur (Score), NOM prénom du perdant (score) ». (98 lignes.)
    SELECT  TO_CHAR(datematch,'DD') AS jour,
     UPPER(bv.nom)||' '||bv.prenom||' ('||scorevainqueur||')' AS vainqueur,
     UPPER(bp.nom)||' '||bp.prenom||' ('||scoreperdant||')' AS perdant
    FROM  matchs, badges bv,badges bp
    WHERE  bv.numbadge=refvainqueur
    AND  bp.numbadge=refperdant
    AND  datematch BETWEEN '2007-08-01' AND '2007-08-31'
    ORDER BY  1,2 ;
  8. Statistiques par jour (en toutes lettres et en français) de la semaine et par court du nombre de réservations. ( ligne.)
    SELECT  CASE
     WHEN TO_CHAR(datereservation,'D')=1 THEN 'dimanche'
     WHEN TO_CHAR(datereservation,'D')=2 THEN 'lundi'
     WHEN TO_CHAR(datereservation,'D')=3 THEN 'mardi'
     WHEN TO_CHAR(datereservation,'D')=4 THEN 'mercredi'
     WHEN TO_CHAR(datereservation,'D')=5 THEN 'jeudi'
     WHEN TO_CHAR(datereservation,'D')=6 THEN 'vendredi'
     ELSE 'samedi' END AS "Jour",
     court,COUNT(*) AS "Réservations"
    FROM  reservations
    GROUP BY  TO_CHAR(datereservation,'D'),court
    ORDER BY  TO_CHAR(datereservation,'D'),2 ;
  9. Date de naissance, âge au jour près, âge en années des joueurs, du plus vieux au plus jeune. (292 lignes.)
    SELECT  nom,prenom,
     TO_CHAR(datenaiss,'DD MM YYYY') AS naissance,
     AGE(CURRENT_DATE,datenaiss) AS "age complet",
     EXTRACT(YEAR FROM AGE(CURRENT_DATE,datenaiss)) AS age
    FROM  badges b,joueurs j
    WHERE  b.numbadge=j.numbadge
    ORDER  BY datenaiss,nom,prenom ;
  10. Nombre de matchs gagnés et de matchs perdus par joueur (en une seule requête). (292 lignes.)
    SELECT  j.numbadge,nom,prenom,
     (SELECT COUNT(*)  FROM matchs
       WHERE refvainqueur=j.numbadge)
       AS "Matchs gagnés",
     (SELECT COUNT(*)  FROM matchs
       WHERE refperdant=j.numbadge)
       AS "Matchs perdus"
    FROM  joueurs j,badges b
    WHERE  b.numbadge=j.numbadge
    ORDER  BY 4 DESC,5 DESC,2,3 ;
Dernière modification : 25/8/2016
6 : semaine du lendi 29 octob' 2007
 Cours n°6 (Cumul=12h) : [Voir le CM n°6]
 TD n°6 (Cumul=21h) : [Voir le TD n°6]
7 : semaine du lendi 5 novemb' 2007
 Cours n°7 (Cumul=14h) : [Voir le CM n°7]
 TD n°7 (Cumul=24,5h) : [Voir le TD n°7]
8 : semaine du lendi 12 novemb' 2007
 Cours n°8 (Cumul=16h) : [Voir le CM n°8]
 TD n°8 (Cumul=27,5h) : [Voir le TD n°8]
9 : semaine du lendi 19 novemb' 2007
 Cours n°9 (Cumul=18h) : [Voir le CM n°9]
 TD n°9 (Cumul=30,5h) : [Voir le TD n°9]
10 : semaine du lendi 26 novemb' 2007
 TD n°10 (Cumul=33,5h) : [Voir le TD n°10]
11 : semaine du lendi 3 décemb' 2007
 TD n°11 (Cumul=36,5h) : [Voir le TD n°11]
12 : semaine du lendi 10 décemb' 2007
 TD n°12 (Cumul=39,5h) : [Voir le TD n°12]
Dernière modification : 25/8/2016