Aide pour requête MySQL
17 messages
• Page 1 sur 2 • 1, 2
-

blman - WRInaute accro

- Messages: 3073
- Inscription: 5 Sep 2003
Aide pour requête MySQL
Bonjour,
Voici mon souci : Pour schématiser, j'ai des enregistrements dans ma BDD un peu comme ça.
id_commande | id_compte
1 | 1
2 | 2
3 | 3
4 | 1
5 | 1
etc...
Je voudrais connaitre le taux de fidélisation, c'est a dire avoir des pourcentages sur le nbre de commandes par clients. Dans mon exemple, le résultat sera :
3 commandes -> 1 compte
1 commande -> 2 compte
Et je bloque sur la requête à écrire. Pouvez-vous m'aider ?
Voici mon souci : Pour schématiser, j'ai des enregistrements dans ma BDD un peu comme ça.
id_commande | id_compte
1 | 1
2 | 2
3 | 3
4 | 1
5 | 1
etc...
Je voudrais connaitre le taux de fidélisation, c'est a dire avoir des pourcentages sur le nbre de commandes par clients. Dans mon exemple, le résultat sera :
3 commandes -> 1 compte
1 commande -> 2 compte
Et je bloque sur la requête à écrire. Pouvez-vous m'aider ?
- lesbonsplansdesophie
- WRInaute impliqué

- Messages: 523
- Inscription: 1 Mar 2004
je crois que la requete suivante:
devrait te renvoyer une table avec le nombre de commandes par client. Ensuite tu divises par le nbre total de commandes (facile a obtenir) pour avoir ton pourcentage.
Cela t'aide t-il ?
- Code: Tout sélectionner
SELECT id_compte , count( * ) AS Number
FROM `ta_table`
GROUP BY id_compte
ORDER BY Number DESC
devrait te renvoyer une table avec le nombre de commandes par client. Ensuite tu divises par le nbre total de commandes (facile a obtenir) pour avoir ton pourcentage.
Cela t'aide t-il ?
-

blman - WRInaute accro

- Messages: 3073
- Inscription: 5 Sep 2003
Bé Sophie, je crois pas que ta requête répond à mon besoin, désolé mais merci de ta participation. Elle va me retourner le nbre pour chaque compte. Alors que moi, je voudrais le nbre de compte ordonné sur le nbre de commande.
en gros le résultat, c'est :
nb_commande | nb_compte
En fait, plus j'y pense, plus je me dit que ça ne peut pas se faire en une seule requête, non ?
en gros le résultat, c'est :
nb_commande | nb_compte
En fait, plus j'y pense, plus je me dit que ça ne peut pas se faire en une seule requête, non ?
- spidetra
- WRInaute passionné

- Messages: 1500
- Inscription: 7 Juil 2003
Un truc dans ce genre :
et la requete SQL associée :
ce qui donne :
NbCommande, count(*)
1 2
3 1
1 commandes => 2 clients
3 commandes => 1 clients
après a toi de faire des stats
- Code: Tout sélectionner
--
-- Structure de la table `test`
--
CREATE TABLE `test` (
`IDCommande` int(11) NOT NULL default '0',
`IDCompte` int(11) NOT NULL default '0'
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Contenu de la table `test`
--
INSERT INTO `test` VALUES (1, 1);
INSERT INTO `test` VALUES (2, 1);
INSERT INTO `test` VALUES (3, 1);
INSERT INTO `test` VALUES (4, 2);
INSERT INTO `test` VALUES (5, 3);
et la requete SQL associée :
- Code: Tout sélectionner
SELECT NbCommande, count(*)
FROM (
SELECT count(*) AS NbCommande
FROM test
GROUP BY IDCompte
) as tbl1
GROUP BY NbCommande
ce qui donne :
NbCommande, count(*)
1 2
3 1
1 commandes => 2 clients
3 commandes => 1 clients
après a toi de faire des stats
- spidetra
- WRInaute passionné

- Messages: 1500
- Inscription: 7 Juil 2003
ça marche chez moi. Je viens juste de tester en faisant un copier/coller du code posté
tu peux poster la structure de ta table ainsi qu'un jeu de données de test, ainsi que ton erreur de syntaxe
Ma config :
PhpMyAdmin : 2.6.1-pl3
Mysql : 4.1.10
Tu as bien mysql 4+
tu peux poster la structure de ta table ainsi qu'un jeu de données de test, ainsi que ton erreur de syntaxe
Ma config :
PhpMyAdmin : 2.6.1-pl3
Mysql : 4.1.10
Tu as bien mysql 4+
-

blman - WRInaute accro

- Messages: 3073
- Inscription: 5 Sep 2003
Erreur
requête SQL :
SELECT NbCommande, count(*) FROM (SELECT count(*) AS NbCommande FROM commande GROUP BY num_client) as tbl GROUP BY NbCommande LIMIT 0, 30
MySQL a répondu:
Erreur de syntaxe près de 'SELECT count(*) AS NbCommande FROM commande GROUP BY num_client)' à la ligne 1
requête SQL :
SELECT NbCommande, count(*) FROM (SELECT count(*) AS NbCommande FROM commande GROUP BY num_client) as tbl GROUP BY NbCommande LIMIT 0, 30
MySQL a répondu:
Erreur de syntaxe près de 'SELECT count(*) AS NbCommande FROM commande GROUP BY num_client)' à la ligne 1
17 messages
• Page 1 sur 2 • 1, 2
Lectures recommandées sur ce thème :
- aide requete MYSQL
- Requete Mysql AIDE svp !
- Aide requête MySQL avec count
- Aide php/mysql requête svp
- Aide pour une requête MySQL
- Aide pour optimiser l'écriture d'une requete PHP/MYSQL
- [mysql] trier les résultats d'une requête selon une table non liée à la requête
- Requete Mysql ?
- requete Mysql
- Requete MySQL et order
- Google API : guide de développement de l'API Google - 20-09-2002
- Gestion des langues et des sessions en PHP / MySQL - 02-05-2004
- Les différents systèmes de mise en cache des données - 16-08-2010
- Passage à l'heure d'été/hiver sur un forum phpBB - 31-10-2010
- Nombre moyen de mots par requête : statistiques AOL Août 2006 - 10-08-2006
- Nombre de clics dans les pages de résultats : statistiques AOL Août 2006 - 11-08-2006
- Script de mise en cache des pages (PHP MySQL) - 09-08-2010
- GoogleStats : analyse temps réel des visites de Google sur votre site - 02-10-2002
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités



