utilisation de max

utilisation de max - SQL/NoSQL - Programmation

Marsh Posté le 07-03-2006 à 17:24:53    

Bonjour,  
 
j'ai un petit pb.  
 
apres un peu de gymnastik et de jointure sur des tables j'obtients des resultats de cette forma  
 
famille| X2 | X3 | X4 | A  
-----------------------------------  
a | jj | gty | hh | 1  
a | g | gty | hh | 3  
c | t | gty | hh | 1  
c | jj | gty | hh | 4  
 
Ce que je souhaiterais fair c'est répérer les lignes correspondant au maximum de la colonne A et les afficher  
 
en gros je voudrais avoir:  
 
famille| X2 | X3 | X4 | A  
-----------------------------------  
a | g | gty | hh | 3  
c | jj | gty | hh | 4  
 
 
De l'aide svp merci !!
 

Reply

Marsh Posté le 07-03-2006 à 17:24:53   

Reply

Marsh Posté le 07-03-2006 à 17:31:23    

SELECT famille, X2, X3, X4, A
FROM tatable
GROUP BY famille, X2, X3, X4
HAVING A = max(A)


---------------
MZP est de retour
Reply

Marsh Posté le 07-03-2006 à 17:38:16    

Documente toi sur la fonction max() et la clause group by.
 
Deux liens pour progresser :
 
http://sqlpro.developpez.com/cours/sqlaz/ensembles/
http://sqlpro.developpez.com/cours/sqlaz/fonctions/
 
EDIT : grilled


Message édité par jeoff le 07-03-2006 à 17:39:00
Reply

Marsh Posté le 07-03-2006 à 17:41:35    

cinocks a écrit :

SELECT famille, X2, X3, X4, A
FROM tatable
GROUP BY famille, X2, X3, X4
HAVING A = max(A)


 
T'as abusé sur le group by je crois ;)


Message édité par jeoff le 07-03-2006 à 17:42:50
Reply

Marsh Posté le 07-03-2006 à 18:00:08    

arf c'est
 
SELECT famille, X2, X3, X4, A
FROM tatable
GROUP BY famille, X2, X3
HAVING X4 = max(X4)
 
Du coup ca fout la merde pour le A


---------------
MZP est de retour
Reply

Marsh Posté le 08-03-2006 à 10:47:07    

cinocks a écrit :

arf c'est
 
SELECT famille, X2, X3, X4, A
FROM tatable
GROUP BY famille, X2, X3
HAVING X4 = max(X4)
 
Du coup ca fout la merde pour le A


 
 
merci,
mais c'est pas tout a fait ca que je veux

Reply

Marsh Posté le 08-03-2006 à 11:20:54    

Je vois ce que tu veux. Maintenant, niveau perf je ne sais pas tro pce que ca peut donner:
 
SELECT t1.famille, t1.X2, t1.X3, t1.X4, t1.A
FROM tatable t1
WHERE t1.A = (SELECT max(t2.A) FROM tatable t2 WHERE t2.famille = t1.famille)
 


---------------
MZP est de retour
Reply

Marsh Posté le 08-03-2006 à 14:17:22    

cinocks a écrit :

Je vois ce que tu veux. Maintenant, niveau perf je ne sais pas tro pce que ca peut donner:
 
SELECT t1.famille, t1.X2, t1.X3, t1.X4, t1.A
FROM tatable t1
WHERE t1.A = (SELECT max(t2.A) FROM tatable t2 WHERE t2.famille = t1.famille)


 
Merci bcp,
ca marche tres bien,
c vrai que c'est un peu lent, mais ca marche.
une fois de plus merci !!!  

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed