Précédent   Forum des professionnels en informatique > Bases de données > Langage SQL
Langage SQL Forum d'entraide sur le langage SQL et sur les questions liées à la conception de schéma (DDL). Cours SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/03/2011, 06h50   #1
Invité de passage
 
sebastien gandon
Inscription : septembre 2010
Messages : 3
Détails du profil
Informations personnelles :
Nom : sebastien gandon

Informations forums :
Inscription : septembre 2010
Messages : 3
Points : 2
Points : 2
Par défaut SELECT retournant 2 colonnes avec 2 clauses where différentes

Bonjour,

J'administre un site de sondages (http://www.123sondez.fr) et j'aurai besoin qu'un SELECT me retourne deux fois la même colonne mais avec deux clauses where différentes.

Je m'explique :

Voici la structure simplifiée de ma table t_stats
timestamp : INTEGER
type : INTEGER (peut valoir 1 ou 2)
...

Existe-il une requête avec un seul SELECT permettant de récupérer les données suivantes:
timestamp | count(*) where type=1 | count(*) where type=2

Ça serait un truc du style
Code sql :
SELECT timestamp, count(*) AS type1, count(*) AS type2 FROM t_stats WHERE type=1 GROUP BY timestamp

mais là, ce n'est pas bon car la colonne type2 et identique à type1.

Merci d'avance pour votre aide, car j'en ai un peu marre de me faire de nœuds au cerveau avec ma requête.

Seb
sgan1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2011, 08h03   #2
Membre éprouvé
 
Inscription : janvier 2009
Messages : 301
Détails du profil
Informations personnelles :
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : janvier 2009
Messages : 301
Points : 454
Points : 454
Bonjour,

Si j'ai bien compris, il me semble que tu pourrais traiter ta difficulté avec la requête ci-après :
Code :
1
2
3
4
5
6
 
SELECT timestamp, 
  SUM(case type when 1 then 1 else 0 end) AS Type1, 
  SUM(case type when 2 then 1 else 0 end) AS Type2
FROM t_stats 
GROUP BY timestamp
Il existe d'autres possibilités, mais celle-ci doit faire l'affaire
seabs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2011, 10h12   #3
Invité de passage
 
sebastien gandon
Inscription : septembre 2010
Messages : 3
Détails du profil
Informations personnelles :
Nom : sebastien gandon

Informations forums :
Inscription : septembre 2010
Messages : 3
Points : 2
Points : 2
Merci seabs,

Ca marche,

J'avais continué à chercher et j'étais maintenant parti sur une jointure de t_stats avec elle même. Penses-tu que ça fait parti des solutions existantes dont tu parlais ? Si oui, je vais également creuser cette piste pour le fun.

Seb
sgan1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2011, 14h11   #4
Membre éprouvé
 
Inscription : janvier 2009
Messages : 301
Détails du profil
Informations personnelles :
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : janvier 2009
Messages : 301
Points : 454
Points : 454
Bonjour,

Effectivement, il est possible d'utiliser les jointures pour faire ton calcul.

Bon courage
seabs est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h44.


 
 
 
 
Partenaires

Hébergement Web