select distint

Le
Steph
Bonjour,
je n'arrive pas a reproduire une commande mysql.
j'ai une table avec ces entrees :

col1 col2 col3
a b c
aa b cc
s a x
q a u

je souheterai donc faire un group by sur la col2 et ne recuperer que une
seule entree de col2,
soit par exemple :
a b c
s a x

mais qu'importe des valeurs de col1 et col3, tant que j'ai col2 avec des
valeurs dans col1 et 3

comment faire ???

merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Fred BROUARD
Le #11880331
Steph a écrit :
Bonjour,
je n'arrive pas a reproduire une commande mysql.
j'ai une table avec ces entrees :

col1 col2 col3
a b c
aa b cc
s a x
q a u

je souheterai donc faire un group by sur la col2 et ne recuperer que une
seule entree de col2,
soit par exemple :
a b c
s a x

mais qu'importe des valeurs de col1 et col3, tant que j'ai col2 avec des
valeurs dans col1 et 3

comment faire ???



Par exemple :
SELECT max(col1), col2, max(col3)
FROM ...
GROUP BY col2

Vous pouvez aussi mettre min à la place de max.

A +


merci




--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
*********************** http://www.sqlspot.com *************************
Steph
Le #11880311
Fred BROUARD wrote:
Steph a écrit :
Bonjour,
je n'arrive pas a reproduire une commande mysql.
j'ai une table avec ces entrees :

col1 col2 col3
a b c
aa b cc
s a x
q a u

je souheterai donc faire un group by sur la col2 et ne recuperer que
une seule entree de col2,
soit par exemple :
a b c
s a x

mais qu'importe des valeurs de col1 et col3, tant que j'ai col2 avec
des valeurs dans col1 et 3

comment faire ???



Par exemple :
SELECT max(col1), col2, max(col3)
FROM ...
GROUP BY col2

Vous pouvez aussi mettre min à la place de max.

A +


merci






et cela marche aussi avec des varchar ? car mes trois col sont en varchar !
Patrice
Le #11880301
> et cela marche aussi avec des varchar ? car mes trois col sont en varchar
!



Euh tu as essayé ? On peut comparer des varchar donc je ne vois pas ce qui
te fait penser que le min et la max pourraient ne pas fonctionner sur du
varchar. Tu risques d'avoir un problème par contre si tu essayes une moyenne
;-)

En complément cela donnera individuellement la valeur la plus élévée (ou la
moins élevée) de col1, col3 pour chaque valeur différente de col2. J'avais
un peu l'impression que tu voulais récupérer une des lignes (mais sur quel
critère ?) car les deux lignes de résultat sont présentes dans tes données
de départ et tu as les valeurs les plus petites pour b (a bc c) et les plus
grandes pour a (s a x). A clarifier si besoin...
Steph
Le #11880291
Patrice wrote:
et cela marche aussi avec des varchar ? car mes trois col sont en varchar
!



Euh tu as essayé ? On peut comparer des varchar donc je ne vois pas ce qui
te fait penser que le min et la max pourraient ne pas fonctionner sur du
varchar. Tu risques d'avoir un problème par contre si tu essayes une moyenne
;-)

En complément cela donnera individuellement la valeur la plus élévée (ou la
moins élevée) de col1, col3 pour chaque valeur différente de col2. J'avais
un peu l'impression que tu voulais récupérer une des lignes (mais sur quel
critère ?) car les deux lignes de résultat sont présentes dans tes données
de départ et tu as les valeurs les plus petites pour b (a bc c) et les plus
grandes pour a (s a x). A clarifier si besoin...







tout marche ! Effectivement il n'y a aucun problème avec des varchars
(ou autres type de données).
Voici un exemple d'utilisation :

INSERT INTO #MyTableVarOI (ID_OI,distance,tri) SELECT
b.id_oi,max(distance),max(capamax) as tri FROM #MyTableVarPRESTA a
LEFT JOIN OI_PRESTATIONS b
ON a.id_oi = b.id_oi
GROUP BY by b.id_oi
helios services
Le #11879071
Fred BROUARD a écrit :
Steph a écrit :
Bonjour,
je n'arrive pas a reproduire une commande mysql.
j'ai une table avec ces entrees :

col1 col2 col3
a b c
aa b cc
s a x
q a u

je souheterai donc faire un group by sur la col2 et ne recuperer que
une seule entree de col2,
soit par exemple :
a b c
s a x

mais qu'importe des valeurs de col1 et col3, tant que j'ai col2 avec
des valeurs dans col1 et 3

comment faire ???



Par exemple :
SELECT max(col1), col2, max(col3)
FROM ...
GROUP BY col2

Vous pouvez aussi mettre min à la place de max.

A +


merci






mais peut on faire confiance à quelqu'un qui prétends coder plus de
65536 valeurs sur 2 octets ?

http://groups.google.com/group/fr.comp.applications.sgbd/msg/621527f995585842?dmode=source





et donc les écrits ont été bannis de wikipedia

--
Dr Thierry HOLZ
HELIOS SERVICES
180 rue de la croix du chene
60250 HEILLES
www.openqm.com02.net
www.pick.com02.net
Publicité
Poster une réponse
Anonyme