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 :

clause HAVING et MAX avec un GROUP BY


Sujet :

Requêtes MySQL

  1. #21
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 64
    Points : 39
    Points
    39
    Par défaut
    bon ben on pourrait presque déclarer le topic résolu, mais vraiment c'est avec une méthode fastidieuse au possible, je résiste pour ne pas tomber dans la grossièreté.

    voilà j'ajoute en fin d'instructions la ligne suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     where c.CodeAeroDep > 800000 and c.CodeAeroDep <= 850000
    et ben pis un a un je passe toute la plage de valeurs ce qui permet à l'instruction de ne pas dépasser la limite temporelle fixée par le serveur de chez free.

    Voilà qui est fait, mais je reste preneur d'une solution plus élégante.

  2. #22
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    As-tu indexé les colonnes qui sont dans la condition de jointure (après le ON) ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #23
    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 : 72
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Citation Envoyé par EnRadeSurEclipse Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     where c.CodeAeroDep > 800000 and c.CodeAeroDep <= 850000
    Tu peux déjà commencer par utiliser BETWEEN
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    where c.CodeAeroDep between 800000 and  850000
    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. #24
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 281
    Points : 11 737
    Points
    11 737
    Par défaut
    attention, c'est une tranche exclusive d'un côté, inclusive de l'autre. Le bon équivalent est donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE c.CodeAeroDep BETWEEN 800001 AND  850000
    Antoun
    Expert Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

  5. #25
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 64
    Points : 39
    Points
    39
    Par défaut
    Citation Envoyé par Antoun Voir le message
    attention, c'est une tranche exclusive d'un côté, inclusive de l'autre. Le bon équivalent est donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE c.CodeAeroDep BETWEEN 800001 AND  850000

    je m'en suis mieux tiré avec les sup et inf, c'est moins galère que les BETWEEN pour balayer toute la série numérique.

  6. #26
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 64
    Points : 39
    Points
    39
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    As-tu indexé les colonnes qui sont dans la condition de jointure (après le ON) ?

    Oui, oui : j'ai passé ces colonnes toutes en integer, et je les ai indexées. Euh en fait je n'en suis pas si certain; voici les formats des champs en question:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    `CodeAeroDep` int( 11 ) NOT NULL ,
    `CodeAeroArr` int( 11 ) NOT NULL ,
    et j'ai vu que dans la structure, telle qu'affichée sur phpmydmin il y a la petite icône index qui est active: ça veut bien dire que c'est indéxé? ou bien faut il rajouter qqchose?

  7. #27
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    En principe avec la case à cocher, c'est indexé. Tu devrais retrouver ces colonnes dans la liste des index.

    Dans les dernières versions de phpMyAdmin, il faut afficher la structure de la table puis cliquer sur "+ Détails".
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  8. #28
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 64
    Points : 39
    Points
    39
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    En principe avec la case à cocher, c'est indexé. Tu devrais retrouver ces colonnes dans la liste des index.

    Dans les dernières versions de phpMyAdmin, il faut afficher la structure de la table puis cliquer sur "+ Détails".

    là je te suis pas du tout; je ne vois pas du tout les détails que tu mentionne. Je vois des icônes, index activé c'est la première image
    alors que les autres champs sont index désactivés c'est la seconde image. Quand je survole à la souris ça dit "index".

    En fait quand je clique dessus ca exécute cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER TABLE `Chemins_HDepMin_1510_sd` ADD INDEX ( `CodeAeroArr` )
    Et donc c'est cela qu'il fallait faire j'imagine? Je fais les questions et les réponses là.
    Images attachées Images attachées   

Discussions similaires

  1. Réponses: 4
    Dernier message: 19/06/2014, 17h11
  2. [NHibernate] clause having avec criteria
    Par MacReiben dans le forum NHibernate
    Réponses: 0
    Dernier message: 05/01/2012, 10h11
  3. clause MAX() dans un GROUP BY
    Par zephilou dans le forum Requêtes
    Réponses: 2
    Dernier message: 28/01/2008, 11h26
  4. max(count(*)) avec un GROUP BY (suite)
    Par awalter1 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 12/09/2007, 15h07
  5. max(count(*)) avec un GROUP BY
    Par awalter1 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 12/09/2007, 11h04

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