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

Langage SQL Discussion :

Problème: select max(count())


Sujet :

Langage SQL

  1. #1
    Membre averti

    Femme Profil pro
    Consultant CRM
    Inscrit en
    Décembre 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Consultant CRM
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2012
    Messages : 30
    Billets dans le blog
    1
    Par défaut Problème: select max(count())
    Bonjour tous le monde;
    je veux afficher le maximum de count de nb menage dans l'un des critères satisfait, pas satisfait...where satis=satisfaction_sante et id_region=13
    l'out put est:count(idmenage),name_region,response

    346 , Sousse, Assez satisfait
    243 , Sousse, Pas du tout satisfait
    232 , Sousse, Pas tres satisfait
    71 , Sousse, Tres satisfait

    mais je veux afficher juste

    346, Sousse, Assez satisfait

    aidez moi svp
    la requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT COUNT( id_menage ) , name_region, response
    FROM `fait_bien_etre` , `gouvernorat` , `satis_trav_polity` 
    WHERE gouvernorat.id_gouv =13
    AND fait_bien_etre.id_gouv = gouvernorat.id_gouv
    AND fait_bien_etre.satis_sante = satis_trav_polity.id_satis
    GROUP BY reponse_satis
    LIMIT 0 , 30

  2. #2
    Membre averti

    Femme Profil pro
    Consultant CRM
    Inscrit en
    Décembre 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Consultant CRM
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2012
    Messages : 30
    Billets dans le blog
    1
    Par défaut
    est ce qu'il ya quelqu'un de cher communauté qui peut m'aider j'essayer de faire plusieurs possibilités et je suis en panne

  3. #3
    Membre actif Avatar de gloax29
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2002
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2002
    Messages : 55
    Par défaut
    tres vite :

    (
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    SELECT COUNT( id_menage ) , name_region, response
    FROM `fait_bien_etre` , `gouvernorat` , `satis_trav_polity` 
    WHERE gouvernorat.id_gouv =13
    AND fait_bien_etre.id_gouv = gouvernorat.id_gouv
    AND fait_bien_etre.satis_sante = satis_trav_polity.id_satis
    GROUP BY reponse_satis
    HAVING COUNT( id_menage ) >= (
    SELECT MAX(COUNT( id_menage ) )
    FROM `fait_bien_etre` , `gouvernorat` , `satis_trav_polity` 
    WHERE gouvernorat.id_gouv =13
    AND fait_bien_etre.id_gouv = gouvernorat.id_gouv
    AND fait_bien_etre.satis_sante = satis_trav_polity.id_satis
    GROUP BY reponse_satis )
    surement il doit y avoir plus simple

  4. #4
    Membre averti

    Femme Profil pro
    Consultant CRM
    Inscrit en
    Décembre 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Consultant CRM
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2012
    Messages : 30
    Billets dans le blog
    1
    Par défaut
    j'ai essayer avec cet requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT MAX( cnt ) 
    FROM (
    SELECT COUNT( id_menage )  cnt, nom_gouv, reponse_satis
    FROM  `fait_bien_etre` ,  `gouvernorat` ,  `satis_trav_polity` 
    WHERE fait_bien_etre.id_gouv = gouvernorat.id_gouv
    AND fait_bien_etre.satis_sante = satis_trav_polity.id_satis
    AND fait_bien_etre.id_gouv =13
    GROUP BY reponse_satis
    )
    mais il m'affiche erreur :#1248 - Every derived table must have its own alias

  5. #5
    Membre actif Avatar de gloax29
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2002
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2002
    Messages : 55
    Par défaut
    a tu essayé celle que je t'est mis?

  6. #6
    Membre averti

    Femme Profil pro
    Consultant CRM
    Inscrit en
    Décembre 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Consultant CRM
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2012
    Messages : 30
    Billets dans le blog
    1
    Par défaut
    merci gloax29 ;
    oui j'ai essayée et je la fait deja il m'affiich erreur:#1111 - Utilisation invalide de la clause GROUP

  7. #7
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Par défaut
    Bonjour et en rajoutant des '' MySql sur les noms des tables préfixant le nom des colonnes ca ne marche pas ?

  8. #8
    Membre averti

    Femme Profil pro
    Consultant CRM
    Inscrit en
    Décembre 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Consultant CRM
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2012
    Messages : 30
    Billets dans le blog
    1
    Par défaut
    punkoff merci pour votre aide;
    avec prefixe aussi il m'affiche le meme msg d'erreur je crois qu'il avait un probleme avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MAX(COUNT( id_menage ) )

  9. #9
    Membre actif Avatar de gloax29
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2002
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2002
    Messages : 55
    Par défaut
    pour ta deuxième requête il faut mettre un alias derrière la dernière parenthèse

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    AND fait_bien_etre.id_gouv =13
    GROUP BY reponse_satis
    ) t

  10. #10
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 371
    Par défaut
    Bonjour,
    D'après le premier message d'erreur:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    SELECT MAX( s1.cnt ) 
    FROM (
    SELECT COUNT( id_menage )  cnt, nom_gouv, reponse_satis
    FROM  `fait_bien_etre` ,  `gouvernorat` ,  `satis_trav_polity` 
    WHERE fait_bien_etre.id_gouv = gouvernorat.id_gouv
    AND fait_bien_etre.satis_sante = satis_trav_polity.id_satis
    AND fait_bien_etre.id_gouv =13
    GROUP BY cnt, nom_gouv, reponse_satis
    ) as s1
    Je me suis aussi permis de rectifier le GROUP BY...

    Tatayo.

  11. #11
    Membre averti

    Femme Profil pro
    Consultant CRM
    Inscrit en
    Décembre 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Consultant CRM
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2012
    Messages : 30
    Billets dans le blog
    1
    Par défaut
    Désolé mais qu'est que j'écrit exactement comme requete fini
    car requete:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT MAX( s1.cnt ) 
    FROM (
    SELECT COUNT( id_menage )  cnt, nom_gouv, reponse_satis
    FROM  `fait_bien_etre` ,  `gouvernorat` ,  `satis_trav_polity` 
    WHERE fait_bien_etre.id_gouv = gouvernorat.id_gouv
    AND fait_bien_etre.satis_sante = satis_trav_polity.id_satis
    AND fait_bien_etre.id_gouv =13
    GROUP BY cnt, nom_gouv, reponse_satis
    ) AS s1
    affiche:#1056 - Ne peut regrouper 'cnt'

    mais quand j'ai supprimée j'ai trouvée ce que j'ai besoin ,mais il me manque le gouvernorat et le reponse correspond a cet

  12. #12
    Membre actif Avatar de gloax29
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2002
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2002
    Messages : 55
    Par défaut
    sql ne peut pas résoudre les alias :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT MAX( COUNT( id_menage ) )

  13. #13
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 371
    Par défaut
    Autant pour moi, copier/coller un peu rapide

    Sinon avec MySQL il me semble que ça fonctionne:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT TOP 1 COUNT( id_menage )  cnt, nom_gouv, reponse_satis
    FROM  `fait_bien_etre` ,  `gouvernorat` ,  `satis_trav_polity` 
    WHERE fait_bien_etre.id_gouv = gouvernorat.id_gouv
    AND fait_bien_etre.satis_sante = satis_trav_polity.id_satis
    AND fait_bien_etre.id_gouv =13
    GROUP BY nom_gouv, reponse_satis
    order by cnt desc
    Ou avec Limit (dont je ne me souviens plus la syntaxe exacte):
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SELECT COUNT( id_menage )  cnt, nom_gouv, reponse_satis
    FROM  `fait_bien_etre` ,  `gouvernorat` ,  `satis_trav_polity` 
    WHERE fait_bien_etre.id_gouv = gouvernorat.id_gouv
    AND fait_bien_etre.satis_sante = satis_trav_polity.id_satis
    AND fait_bien_etre.id_gouv =13
    GROUP BY nom_gouv, reponse_satis
    order by cnt desc
    limit 1

    Tatayo.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème select max() sur un select count()
    Par totoAussi dans le forum Langage SQL
    Réponses: 6
    Dernier message: 19/02/2015, 01h03
  2. [SQL Server] alternative au SELECT MAX( COUNT(*) )
    Par xtotoro dans le forum Langage SQL
    Réponses: 11
    Dernier message: 24/05/2007, 13h57
  3. problème avec un select max
    Par bobic dans le forum Oracle
    Réponses: 7
    Dernier message: 14/11/2005, 11h22
  4. Problème select MAX(annee) dans une requête
    Par grisounette dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 28/10/2004, 17h36

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