Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1713 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [SQL] Optimisation d'une requete

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[SQL] Optimisation d'une requete

n°583429
Profil sup​primé
Posté le 04-12-2003 à 23:14:52  answer
 

Code :
  1. SELECT code_ens, nom_ens
  2. FROM ENSEIGNEMENT E1
  3. WHERE E1.volume_total=(
  4. SELECT MAX(volume_total)
  5. FROM ENSEIGNEMENT E2;


 
Voilà une requete pour afficher le nuplet (code_ens, nom_ens) qui a le volume_total le plus grand ... Cependant cette requete utilise un SELECT imbriqué, est ce possible de le supprimer pour que la requete devienne une requete avec un seul SELECT ..?
 
Merci d'avance !  :hello:  
JardY


Message édité par Profil supprimé le 04-12-2003 à 23:15:10
mood
Publicité
Posté le 04-12-2003 à 23:14:52  profilanswer
 

n°583434
jeoff
Posté le 04-12-2003 à 23:20:24  profilanswer
 

c pas optimisable si tu utilise une "fonction" (je ne me rapelle plus le terme exacte pour designer un select max) si je me rappelle bien mes cours de l'an dernier
 
pas de possibilité de "collage" genre E1.x=E2.y dans ce cas

n°583440
mrbebert
Posté le 04-12-2003 à 23:24:22  profilanswer
 

Pour bien faire du SQL, faut faire du français :D  
 
Tu ne veux plus le nuplet qui a le volume_total le plus grand, mais plutôt le premier nuplet par ordre décroissant de volume_total :
SELECT code_ens, nom_ens  
FROM ENSEIGNEMENT
ORDER BY volume_total DESC
LIMIT 1

n°583443
jeoff
Posté le 04-12-2003 à 23:33:23  profilanswer
 

nice mrBebert j'aurai compléter mes connaissances en SQL en plus de galérer en C++ aujourd'hui  
merci :D

n°583446
mrbebert
Posté le 04-12-2003 à 23:36:39  profilanswer
 

jeoff a écrit :

nice mrBebert j'aurai compléter mes connaissances en SQL en plus de galérer en C++ aujourd'hui  
merci :D

Là, je peux rien faire pour toi :lol:  :whistle:

n°583457
Profil sup​primé
Posté le 04-12-2003 à 23:46:07  answer
 

C'est plus astucieux ... c'est sur ! Bien joué !

n°583462
Profil sup​primé
Posté le 04-12-2003 à 23:52:57  answer
 

Autre question ...
 
Pour chaque formation, donner le nombre d?heures de cours
(une formation se compose d'enseignements, ces enseignements ont tous un volume_horaire ...)
 
Est ce que cette requete vous parait correcte :
 
SELECT code_formation, nom_formation, somme
FROM FORMATION F, ENSEIGNEMENT E
WHERE F.code_formation=E.code_formation
GROUP BY E.code_formation HAVING SUM(volume_horaire) as somme;

n°583467
HappyHarry
Posté le 05-12-2003 à 00:03:33  profilanswer
 

Jardy a écrit :

Autre question ...
 
Pour chaque formation, donner le nombre d?heures de cours
(une formation se compose d'enseignements, ces enseignements ont tous un volume_horaire ...)
 
Est ce que cette requete vous parait correcte :
 
SELECT code_formation, nom_formation, somme
FROM FORMATION F, ENSEIGNEMENT E
WHERE F.code_formation=E.code_formation
GROUP BY E.code_formation HAVING SUM(volume_horaire) as somme;


 
non
 
SELECT F.code_formation, F.nom_formation, SUM(volume_horaire)
FROM FORMATION F, ENSEIGNEMENT E
WHERE F.code_formation=E.code_formation
GROUP BY F.code_formation, F.nom_formation
 
 
la clause having permet un filtrage sur les groupes


Message édité par HappyHarry le 05-12-2003 à 00:16:18
n°583470
Profil sup​primé
Posté le 05-12-2003 à 00:12:44  answer
 

je me demande si on ne devrait pas mettre plutot
GROUP BY E.code_formation à la place de  
GROUP BY F.code_formation ????

n°583473
HappyHarry
Posté le 05-12-2003 à 00:16:54  profilanswer
 

faut mettre celui qui est dans ta clause SELECT
(j'ai édité)

mood
Publicité
Posté le 05-12-2003 à 00:16:54  profilanswer
 

n°583476
Profil sup​primé
Posté le 05-12-2003 à 00:22:33  answer
 

ok merci beaucoup, il se peut que ce post fasse l'objet d'autres questions ... ;)

n°583478
HappyHarry
Posté le 05-12-2003 à 00:24:26  profilanswer
 

faudrait voir a t'installer un sgbd et a tester par toi meme :o

n°583486
Profil sup​primé
Posté le 05-12-2003 à 00:38:04  answer
 

j'en ai un ...

n°583487
Profil sup​primé
Posté le 05-12-2003 à 00:38:20  answer
 

je vous fais reflechir un peu ! ;)

n°583490
HappyHarry
Posté le 05-12-2003 à 00:43:08  profilanswer
 

Jardy a écrit :

je vous fais reflechir un peu ! ;)


 
:sarcastic:

n°583542
Mara's dad
Yes I can !
Posté le 05-12-2003 à 08:46:47  profilanswer
 

Jardy a écrit :

j'en ai un ...  


Lequel ?


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [SQL] Optimisation d'une requete

 

Sujets relatifs
Cree des cles qui s'incrementent automatiquement sous SQL server 2000[PHP/MySQL] Prob de récup du résultat d'une requete
Problème de requête SQL dans un prog. en VBRetrouver la requete sur laquelle est basée un formulaire ACCESS ???
Optimisation Oracle 9iRequète SQL : spécifique SQL Server ou standard selon vous ?
[PHP/SQL] Insertion de caractères spéciaux dans une tableSyntaxe SQL
[SQL] optimisation de requête....[SQL] requete (optimisation toute simple help!!!!)
Plus de sujets relatifs à : [SQL] Optimisation d'une requete


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR