GROUP BY sur deux caracteres d'un champs - SQL/NoSQL - Programmation
Marsh Posté le 02-08-2006 à 14:18:40
select substring(tonChamps,0,2), count(*) from tatable group by substring(tonChamps,0,2)
Marsh Posté le 02-08-2006 à 14:22:29
ca ne fonctionne pas comme ca, j'avais essayé
ca me regroupe tout sous le 1er alors que j'ai ca :
75010
75011
75020
71000
72000
35000
35300
Marsh Posté le 02-08-2006 à 14:28:48
Il fallait mettre substring(tonChamps,2) et pas substring(tonChamps,0,2)
Merci
Marsh Posté le 02-08-2006 à 14:33:29
aucun mais je pense que tu as du merdé dans ta requête.
Ce que j'ai ecrit j'en suis sur à 200% et elle fonctionne.
La seule chose qui peut eventuellement merdé c'est la fonction substring qui n'est pas pareil sur tout les sgbd ( exemple sur db2 c'est substr avec l'index qui commence à 1)
Marsh Posté le 04-08-2006 à 16:51:15
bon, déjà, on arrête d'utiliser "group by" pour faire des tris les gars.
order by, point barre.
group by, c'est pour faire des regroupements quand on utilise des fonctions analytiques, pas pour faire des tris.
Marsh Posté le 04-08-2006 à 17:02:11
Arjuna a écrit : bon, déjà, on arrête d'utiliser "group by" pour faire des tris les gars. |
nycius a écrit : j'aimerai que ma requete me regroupe par 75 |
anapajari a écrit : select substring(tonChamps,0,2), count(*) from tatable group by substring(tonChamps,0,2) |
Marsh Posté le 04-08-2006 à 17:08:30
c'est toi qui parle de count(*)
et quand un gars parle de "regrouper", sans savoir faire un substring(), je me méfie. en français, regrouper, c'est simplement trier.
Marsh Posté le 02-08-2006 à 14:17:26
Salut,
J'ai des champs avec dedans des infos du type
75010
75011
75020
j'aimerai que ma requete me regroupe par 75 ? en fait les deux premier champs, est ce possible ?