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 :

UNION & GROUP BY


Sujet :

Requêtes MySQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 40
    Points : 32
    Points
    32
    Par défaut UNION & GROUP BY
    hello tout le monde
    je voudrai savoir s'il est possible de faire ce genre de requete sans passer par des tables temporary:

    CREATE temporary TABLE temp
    SELECT t.timestamp_start
    FROM data t
    INNER JOIN chainesv ON ( t.service = v.service )
    WHERE v.cat = 'download'
    AND (v.nom = 'A' OR v.nom = 'B' );

    INSERT INTO temp
    SELECT t.timestamp_start
    FROM data t
    INNER JOIN chaines v ON ( t.id = v.id )
    WHERE v.cat ='download'
    AND v.nom <> 'A' AND v.nom <> 'B' ;

    SELECT DATE_FORMAT( t.timestamp_start, '%y %m %d %H' ) date, count( * ) y
    FROM temp t GROUP BY date ORDER BY date ASC";

    je crée donc une table temporaire temp, je la remplie avec mes deux requetes, puis je compte le nombre de dates par jour

    j'ai deja tenté de passé par un UNION et de faire un group by sur la globalité de l'union mais ca ne marche pas.
    J'utilise une version > 4.1
    merci d'avance !


    en gros temp ressemble a ca: date heure
    06 02 01 00 751
    06 02 01 01 449
    06 02 01 02 177
    06 02 01 03 103
    06 02 01 04 21
    06 02 01 05 32
    06 02 01 06 49

  2. #2
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Points : 9 716
    Points
    9 716
    Par défaut
    Pour une version >4.1:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT ...
    FROM
      (SELECT ...
     
       UNION [ALL|DISTINCT]
     
       SELECT ...) A
     
    GROUP BY A.???
    ...

  3. #3
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Points : 9 716
    Points
    9 716
    Par défaut
    Sinon je pense que tu peux tout faire en une seule requête:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT t.timestamp_start
    FROM data t
     
    INNER JOIN chainesv ON ((t.service=v.service) OR (t.id=v.id))
     
    WHERE ((t.service=v.service) AND (v.nom='A' OR v.nom='B'))
    OR (t.id=v.id AND v.nom<>'A' AND v.nom<>'B') ;

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

Discussions similaires

  1. Union et Group By
    Par Just-Soft dans le forum SQL
    Réponses: 7
    Dernier message: 22/08/2013, 14h22
  2. Requete Union et Group By
    Par jmde dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 29/01/2009, 10h05
  3. Requête union avec group by qui gère les 2 requêtes.
    Par juha dans le forum Langage SQL
    Réponses: 8
    Dernier message: 22/10/2007, 09h38
  4. union et group by
    Par aurelie83 dans le forum SQL
    Réponses: 1
    Dernier message: 13/09/2007, 18h00
  5. Problème avec UNION et Group by
    Par dujardin dans le forum Requêtes
    Réponses: 4
    Dernier message: 14/02/2007, 04h55

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