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 :

COUNT() et condition


Sujet :

Requêtes MySQL

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 215
    Par défaut COUNT() et condition
    Bonjour,

    Il est nécessaire en premier lieu de consulter le schéma (simple) de la bdd concernée ; en pièce jointe. ( displayed_timestamp n'est plus un timestamp mais un datetime )

    La requête doit :

    - Récupérer tous les sites actif ( site_active = 1 )
    - La catégorie du site
    - La concaténation des formats de pub disponibles pour le site
    - Le nombre de ligne ajoutées hier dans displayed pour chaque site

    La requête fonctionne sans le dernier critère :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SELECT 
    site.*,
    category.category_name,
    COUNT(displayed.displayed_ip) AS display_count,
    GROUP_CONCAT( pub_format.pub_format_name SEPARATOR ', ') AS pub_format_list
    FROM site
    LEFT JOIN category USING(category_id)
    LEFT JOIN available_format USING(site_id)
    LEFT JOIN pub_format USING(pub_format_id)
    LEFT JOIN displayed USING(site_id)
    WHERE site_active = 1
    GROUP BY site.site_id
    ORDER BY site_name
    Mais si à la clause WHERE je rajoute :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    displayed.displayed_timestamp BETWEEN DATE_SUB(CURDATE(), INTERVAL 1 DAY) AND CURDATE()
    Alors la requête ne me renvoie aucune ligne.
    La table site ne comporte qu'une seule ligne, category, pub_format et available_format quelques unes, tandis que displayed est vide.

    Je ne comprends pas le comportement de la requête complète.

    Je voudrais dans la mesure du possible éviter SUM+IF , qui niveau performance laisse VRAIMENT à désirer, alors que la requête est déjà très lourde.

    Où est le bins ? ^^
    Images attachées Images attachées  

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/12/2008, 10h15
  2. Requetes Avec Count et condition sur date
    Par Harry dans le forum WinDev
    Réponses: 1
    Dernier message: 04/06/2007, 15h23
  3. utilisation de count(*) en condition
    Par clemsouz dans le forum Requêtes
    Réponses: 3
    Dernier message: 26/09/2005, 14h32
  4. utilisation de count(*) en condition
    Par clemsouz dans le forum Langage SQL
    Réponses: 12
    Dernier message: 26/09/2005, 14h29
  5. Count avec condition
    Par sourivore dans le forum Langage SQL
    Réponses: 24
    Dernier message: 22/08/2005, 22h41

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