Group by selon une liste de valeur - SQL/NoSQL - Programmation
Marsh Posté le 26-08-2009 à 12:54:19
tu peux nous en dire un peu plus (apercu des données de ta table et de ce que tu veux) parce que la c'est pas très clair...
normalement
Code :
|
devrait directement te donner le nombre de client par mois...
Marsh Posté le 26-08-2009 à 15:12:54
avec plaisir :
Soit une table tbl_client :
|
La requete " SELECT mois, count(num_client) FROM tbl_client GROUP BY mois "
Va me renvoyer
|
Alors que je souhaiterais
|
La question devient t'elle plus clair ?
Marsh Posté le 26-08-2009 à 16:06:41
PierreC a écrit : La question devient t'elle plus clair ? |
beaucoup plus! à mon avis la tu n'as pas le choix du coup, tu es obligé de créer une table avec des indices de 1 à 12, et de faire une sous requête ou une jointure...
Marsh Posté le 26-08-2009 à 09:48:39
Bonjour à tous
Je cherche (en MySql) à effectuer un GROUP BY sur un champ mais en imposant la liste de valeur sur lequels je veux effectuer le regroupement.
Un truc de ce genre :
SELECT mois, count(client) FROM tbl_mois GROUP BY mois IN (1,2,3,4,5,6,7,8,9,10,11,12)
(le IN ne fonctionnant bien évidement pas à cette endroit)
L'idée n'est pas de restreindre à une liste de valeur, mais au contraire de forcer à avoir dans le résultat toutes les valeurs fournit.
La seule solution que j'ai pour l'instant est de crée une table de référence sur laquelle je fait un RIGHT JOIN . Mais pour des requête compliqué, ajouté des jointures n'arrange pas les choses. (de plus dans le cas d'utilisation d'un where il faut crée en plus une sous requete)
Des idées pour une solution simple à mon problème ?
---------------
Du tofu en Alsace : www.tofuhong.com