IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

regroupement apres un count


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    691
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 691
    Par défaut regroupement apres un count
    Je vous expose le probleme.

    J'ai deux tables.
    Une appel et une conversation
    Dans la table conversation il y a l'id de l'appel pour faire une liaison (foreign key en quelque sorte)

    je voudrais faire une requete qui me donne le nombre d'appel qui possede 1à3 conv 3à5 et 5à10.

    Hors je vois pas comment faire ou meme si c'est possible.

    Quelqu'un pourrait-il m'aider?

  2. #2
    Membre Expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Par défaut
    Saluton,
    Tes bornes se chevauchent 1à3 , 3à5, 5à10 celui qui a 3 ou 5 appels on le met dans quel groupe ?
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  3. #3
    Membre Expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Par défaut
    Ceci dit, quand tu seras au clair avec tes intervalles, la requête serait du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    (SELECT a.id, COUNT(a.id) effectif
    FROM appels a
    INNER JOIN conversations c
    ON c.appel=a.id
    GROUP BY a.id
    HAVING effectif BETWEEN 1 AND 3
    UNION
    SELECT a.id, COUNT(a.id) effectif
    FROM appels a
    INNER JOIN conversations c
    ON c.appel=a.id
    GROUP BY a.id
    HAVING effectif BETWEEN 3 AND 5
    UNION
    SELECT a.id, COUNT(a.id) effectif
    FROM appels a
    INNER JOIN conversations c
    ON c.appel=a.id
    GROUP BY a.id
    HAVING effectif BETWEEN 5 AND 10)
    ORDER BY effectif, id
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    691
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 691
    Par défaut
    Effectivement j'avais pas vu en copiant.

    Je suis partie sur une solution identique. Mais je me demandais si on pouvait remplacer les unions.

    Sinon il manque quelques chose avec ta solution puisque ca me compte pas le nombre d'apel qui a entre 1 et 3 conv.

  5. #5
    Membre Expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Par défaut
    A la réflexion, je me demande pourquoi ne pas plutôt faire simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT a.id, COUNT(a.id) effectif
    FROM appels a
    INNER JOIN conversations c
    ON c.appel=a.id
    GROUP BY a.id
    HAVING effectif BETWEEN 1 AND 3
       OR effectif BETWEEN 3 AND 5
       OR effectif BETWEEN 5 AND 10
    ORDER BY effectif, id
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

Discussions similaires

  1. [PDO] Récupérer des données apres controle COUNT
    Par Invité dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 22/10/2010, 09h54
  2. Mon "Rows.Count" apres un clearcontents ne marche pas
    Par hassenssas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/05/2008, 14h59
  3. regrouper un count et un sum
    Par grimat dans le forum Langage SQL
    Réponses: 4
    Dernier message: 10/04/2008, 18h07
  4. [MySQL] transformer ligne en colonne dans tableau après regroupement
    Par yadou dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 19/07/2007, 15h27
  5. [Tableaux] affichage tableau php apres requete sql count
    Par heteroclite dans le forum Langage
    Réponses: 1
    Dernier message: 13/09/2006, 20h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo