SQL question

mouglixx Messages postés 535 Statut Membre -  
mouglixx Messages postés 535 Statut Membre -
Bonjour,

Voici ma question sur une requête sql particulière.

J'ai une table de ce type.

NOM1 nom2 nom3 valeurx valeury

J'aimerai pouvoir compter le nombre de fois qu'un même nom est présent au total, que ce soit sous nom1, nom2 ou nom3 ( par exemple ).

En gros on pourrait avoir des valeurs de ce genre

'toto','john','eric','1','2'
'fred','toto','marc','2','4'
'jean','paul','toto','3','5'

Comment savoir quel est le prénom le plus utilisé dans ces lignes et le comptabiliser ?

S'il apparait que dans la colonne nom1, je sais le faire. Mais s'il peut apparaitre sous plusieurs colonne, non.
Truc du genre :
SELECT nom1, count(*)
FROM matabme
GROUP BY nom1
ORDER BY count(*) DESC LIMIT 3

Merci si vous savez me répondre ;)
A voir également:

3 réponses

productif Messages postés 39 Statut Membre 20
 
Tu peux utiliser une sous-requête (ça marche sous Oracle, mais peut-être pas tous les moteurs) ou une vue dans la clause FROM à la place de ta table. La sous-requête ou la vue serait définie ainsi :

SELECT nom1 AS nom FROM matable
UNION ALL
SELECT nom2 AS nom FROM matable
UNION ALL
SELECT nom3 AS nom FROM matable


Tu peux éventuellement ajouter valeurx et valeury dans chacun des SELECT si tu en as besoin par la suite. Le mot-clé "ALL" est important car sinon les valeurs seraient dédoublonnées (i.e. DISTINCT).
0
mouglixx Messages postés 535 Statut Membre 159
 
Ca compte rien du tout dans ce cas.
0
mouglixx Messages postés 535 Statut Membre 159
 
Trouvé ailleurs, merci
0