Bonjour,
Quelqu’un peut-il m’aider ? SVP
Je souhaite obtenir un rang par date de chargement des pages en sql, pour chaque session.
J’utilise MySql.
Ma table « tr » contient les champs suivants :
Session
Page_name
Request_date
J’utilise la requête suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT *, (SELECT COUNT(DISTINCT(a.REQUEST_date))+1 AS rang FROM tr AS a WHERE (a.REQUEST_date < b.REQUEST_date)) AS rang FROM tr AS b
J’obtiens un cassement du type
Session | Page_name | Request_date| Rang |
S1 | Page 1 |XXX11:05:09 | 1 |
S1 | Page 2 |XXX11:05:10 | 2 |
S1 | Page B |XXX11:05:11 | 3 |
S2 | Page 1 |XXX11:05:12 | 4 |
S2 | Page X |XXX11:05:13 | 5 |
S2 | Page Y |XXX11:05:14 | 6 |
S2 | Page Z |XXX11:05:15 | 7 |
Mais ce que j’aimerais obtenir c’est :
Session | Page_name | Request_date | Rang |
S1 | Page 1 |XXX11:05:09 | 1 |
S1 | Page 2 |XXX11:05:10 | 2 |
S1 | Page B |XXX11:05:11 | 3 |
S2 | Page 1 |XXX11:05:12 | 1 |
S2 | Page X |XXX11:05:13 | 2 |
S2 | Page Y |XXX11:05:14 | 3 |
S2 | Page Z |XXX11:05:15 | 4 |
J’ai donc ajouté un group by SESSION mais cela ne fonctionne pas, j’obtiens :
Session | Page_name | Request_date| Rang |
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT *, (SELECT COUNT(DISTINCT(a.REQUEST_DATE))+1 AS rang FROM tr AS a WHERE (a.REQUEST_DATE < b.REQUEST_DATE)) AS rang FROM tr AS b GROUP BY SESSION;
S1 | Page 1 |XXX11:05:09 | 1 |
S2 | Page 1 |XXX11:05:12 | 4 |
Partager