Partage
  • Partager sur Facebook
  • Partager sur Twitter

[SQL] Exo case

    20 novembre 2020 à 0:26:48

    Bonjour, je dois réaliser des exercices sur les requêtes SQL pour un de mes cours seulement je bloques sur les 2 derniers exos.
    -
    Pour le premier, j'ai une table "pilote" qui ressemble à ceci :
    -
    -
    La consigne : Affichez le nombre de pilotes pour chacune des catégories suivantes : pilote débutant (moins
    de 250 heures de vol), pilote expérimenté (entre 250 et 1700 heures de vol) et pilote expert
    (plus de 1700 heures de vol).
    -
    Résultat à obtenir :
    -
    -
    Du coup je partais sur une requête qui ressemble à ça mais je patauge un peu, quelqu'un saurais m'aguiller ? :
    select case when nbheures < 250 then 'pilote débutant' when nbheures >= 250 and nbheures <= 1700 then 'pilote expérimenté' when nbheures > 1700 then 'pilote expert' end as 'Type pilote' from pilote;


    /!\ EDIT

    J'ai finalement trouvé une solution, malgré qu'elle soit un peu longue, si vous avez plus court, je suis preneur.

    select case 
    	when nbheures < 250 then 'pilote débutant' 
    	when nbheures >= 250 and nbheures <= 1700 then 'pilote expérimenté' 
    	when nbheures > 1700 then 'pilote expert' 
    	end as 'Type pilote', count(
    		case 
    			when nbheures < 250 then 'pilote débutant' 
    			when nbheures >= 250 and nbheures <= 1700 then 'pilote expérimenté' 
    			when nbheures > 1700 then 'pilote expert' end) 
    				as tot from pilote group by 
    					case 
    						when nbheures < 250 then 'pilote débutant' 
    						when nbheures >= 250 and nbheures <= 1700 then 'pilote expérimenté' 
    						when nbheures > 1700 then 'pilote expert' end;

    EDIT Benzouye : Coloration syntaxique SQL

    -
    Edité par Benzouye 20 novembre 2020 à 9:06:51

    • Partager sur Facebook
    • Partager sur Twitter
      20 novembre 2020 à 9:06:03

      SELECT
      	CASE
      		WHEN nbheures < 250 THEN 'pilote débutant'
      		WHEN nbheures >= 250 AND nbheures <= 1700 THEN 'pilote expérimenté'
      		ELSE 'pilote expert'
      	END AS 'Type pilote',
      	COUNT(*) AS 'tot'
      FROM pilote
      GROUP BY
      	CASE
      		WHEN nbheures < 250 THEN 'pilote débutant'
      		WHEN nbheures >= 250 AND nbheures <= 1700 THEN 'pilote expérimenté'
      		ELSE 'pilote expert'
      	END;
      • Partager sur Facebook
      • Partager sur Twitter
      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL

      [SQL] Exo case

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown