Bonjour,
Je veux récupérer le nombre de téléchargements par utilisateur et par année.
Pour cela j'ai 2 tables:
J'ai une première requete qui marche :
- LOG, ou sont loger certaines actions utilisateurs. Les colonnes sont:
- LOG_UTL_ID : NUMBER // Identifiant de l'utilisateur
- LOG_EVENT_ID : NUMBER // Code de l'évéènement. Pour un téléchagement c'est 41.
- LOG_DATE: DATE // Date de l'évènement.
- UTILISATEUR, contenant les infos sur les utilisateurs ...
- UTL_ID : NUMBER
- UTL_NOM : VARCHAR2
- UTL_PRENOM : VARCHAR2
- ...
Mes problèmes se posent lorsque je veux faire apparaitre d'autres informations sur les utilisateurs : nom, prénom, etc ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 SELECT LOG.LOG_UTL_ID AS userId, EXTRACT(YEAR FROM LOG.LOG_DATE) AS year, COUNT(*) AS count FROM LOG WHERE LOG.LOG_EVENT_ID = 41 GROUP BY LOG.LOG_UTL_ID, EXTRACT(YEAR FROM LOG.LOG_DATE) ORDER BY LOG.LOG_UTL_ID, EXTRACT(YEAR FROM LOG.LOG_DATE);
Si je fais :
J'ai l'erreur suivant: "ORA-00979 N'est pas une expression GROUP BY"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 SELECT UTILISATEUR.UTL_NOM AS userSurename, UTILISATEUR.UTL_PRENOM AS userForename, LOG.LOG_UTL_ID AS userId, EXTRACT(YEAR FROM LOG.LOG_DATE) AS year, COUNT(*) AS count FROM LOG INNER JOIN UTILISATEUR ON UTILISATEUR.UTL_ID = LOG.LOG_UTL_ID WHERE LOG.LOG_EVENT_ID = 41 GROUP BY LOG.LOG_UTL_ID, EXTRACT(YEAR FROM LOG.LOG_DATE) ORDER BY LOG.LOG_UTL_ID, EXTRACT(YEAR FROM LOG.LOG_DATE);
De même en faisant:
Vous avez peut être la solution ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 SELECT UTILISATEUR.UTL_NOM AS userSurename, UTILISATEUR.UTL_PRENOM AS userForename, LOG.LOG_UTL_ID AS userId, EXTRACT(YEAR FROM LOG.LOG_DATE) AS year, COUNT(*) AS count FROM LOG, UTILISATEUR WHERE LOG.LOG_EVENT_ID = 41 AND UTILISATEUR.UTL_ID = LOG.LOG_UTL_ID GROUP BY LOG.LOG_UTL_ID, EXTRACT(YEAR FROM LOG.LOG_DATE) ORDER BY LOG.LOG_UTL_ID, EXTRACT(YEAR FROM LOG.LOG_DATE);
Partager