Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Développement
Développement Forum d'entraide sur le Transact-SQL, le CLR, les procédures stockées, les triggers, les requêtes 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 04/10/2011, 09h44   #1
Candidat au titre de Membre du Club
 
Développeur Web
Inscription : janvier 2011
Messages : 48
Détails du profil
Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2011
Messages : 48
Points : 13
Points : 13
Par défaut Problème procédure stockée distinct, group by

Bonjour,
j'ai une table, qui simplifiée,est de la forme:
Code :
1
2
 
[Year] | [Month] | [Mail]
Je souhaite récupérer l'ensemble des utilisateurs par année(utilisateur=adresse mail dans ce cas).
C'est à dire qu'il faut ne compter qu'une fois un utilisateur par année.

Par exemple si il apparaît deux fois en 2008 et 3 fois en 2009 dans la table, il faut que cette utilisateur soit compté une fois en 2008 et une fois en 2009.

Avez vous une idée?
merci d'avance.
Kirua76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2011, 10h58   #2
Candidat au titre de Membre du Club
 
Développeur Web
Inscription : janvier 2011
Messages : 48
Détails du profil
Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2011
Messages : 48
Points : 13
Points : 13
pour le moment j'ai fait ça:

Code :
1
2
3
4
 
SELECT [YEAR], [Email] FROM TABLE
GROUP BY [YEAR],[Email]
ORDER BY Email;
maintenant je souhaite récupérer par exemple:
2010 => 11454 utilisateurs
2009 => 9941 utilisateurs
....
Kirua76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2011, 11h36   #3
Candidat au titre de Membre du Club
 
Développeur Web
Inscription : janvier 2011
Messages : 48
Détails du profil
Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2011
Messages : 48
Points : 13
Points : 13
bon j'ai reussit pour cette requête, j'aurai juste besoin d'aide pour la deuxième.

C'est la même chose sauf que je veux grouper les résultats par mois et année.

Je veux récupérer:
2011 5 => 14514 téléchargements
2011 4 => 1541 téléchargements
....

mon code:
Code :
1
2
3
 
SELECT [YEAR] AS [Year], [MONTH] AS [Month], [Email] AS [Email] FROM tab
GROUP BY [Year],[Month],[Email]
mais maintenant je n'arrive pas à compter pour chaque mois et année.
Kirua76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2011, 11h45   #4
Membre chevronné
 
Avatar de Oishiiii
 
Administrateur de base de données
Inscription : août 2009
Messages : 404
Détails du profil
Informations personnelles :
Âge : 24

Informations professionnelles :
Activité : Administrateur de base de données

Informations forums :
Inscription : août 2009
Messages : 404
Points : 643
Points : 643
Pour compter il faut utiliser la fonction Count(*).
Essayez ceci :
Code :
1
2
3
4
 
SELECT Year, Month, Count(*) AS nbEmail 
FROM tab
GROUP BY Year, Month
Oishiiii est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2011, 12h58   #5
Candidat au titre de Membre du Club
 
Développeur Web
Inscription : janvier 2011
Messages : 48
Détails du profil
Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2011
Messages : 48
Points : 13
Points : 13
Je sais qu'il faut utliser la fonction Count. Le seul problème est que la il faut que je fasse un count de deux colonnes et c'est impossible je crois.

La je récupère une requête qui me renvoit:

Code :
1
2
 
[YEAR] [MONTH] [MAIL]
donc c'est un début, je vois donc qui a télécharger au moins une fois par mois/année.
Maintenant il faut que je fasse un count des colonnes(mois/année).

Je dois m'exprimer mal.

J'ai une table qui contient des téléchargements, cette table simplifié est sous la forme
Code :
1
2
 
[YEAR][MONTH][MAIL][STATE]....
Et le but de ma requête est de récuperer par mois/année, le nombre d'utilisateur. Donc un seul téléchargement par utilisateurs par mois/année.

Code :
1
2
SELECT [YEAR] AS [Year], [MONTH] AS [Month], [Email] AS [Email] FROM tab
GROUP BY [Year],[Month],[Email]
avec cette requête je récupère bien l'ensemble des utilisateurs par mois/année, mais il faut que je les groupe maintenant pour obtenir:

2008(année) 5(mois) 1454 téléchargements
2008 4 15415 téléchargements...
Kirua76 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 03h59.


 
 
 
 
Partenaires

Hébergement Web