Syntaxe d'une certaine requete sql
fred
-
traben_phoenix Messages postés 14 Statut Membre -
traben_phoenix Messages postés 14 Statut Membre -
Bonjour,
je ne connais pas la syntaxe de cette requête sql :
j'ai une table, qui contient un enregistrement pour chaque page affichée sur le site, avec l'ip du visiteur entres autres.
Maintenant j'aimerais faire la moyenne du nombre de page affichées par visiteur pour les 5000 derniers visiteurs par exemple...
l'idée ça serait de faire un
select count(id) from matable order by distinct ip desc limit 5000
mais
1) je n'ai aucune idée de la syntaxe à utiliser
2) ça me parait lourd car il faut ensuite faire une boucle qui additionne les 5000 résultats pour ensuite diviser par 5000....
Avez vous une meilleure méthode ???
merci !!
Fred
je ne connais pas la syntaxe de cette requête sql :
j'ai une table, qui contient un enregistrement pour chaque page affichée sur le site, avec l'ip du visiteur entres autres.
Maintenant j'aimerais faire la moyenne du nombre de page affichées par visiteur pour les 5000 derniers visiteurs par exemple...
l'idée ça serait de faire un
select count(id) from matable order by distinct ip desc limit 5000
mais
1) je n'ai aucune idée de la syntaxe à utiliser
2) ça me parait lourd car il faut ensuite faire une boucle qui additionne les 5000 résultats pour ensuite diviser par 5000....
Avez vous une meilleure méthode ???
merci !!
Fred
A voir également:
- Syntaxe d'une certaine requete sql
- Logiciel sql - Télécharger - Bases de données
- Blob sql ✓ - Forum Webmastering
- Trouver erreur de syntaxe fichier txt - Forum Windows
- Jointure sql ✓ - Forum MySQL
- La syntaxe du nom de fichier de répertoire ou de volume est incorrecte ✓ - Forum Windows 10
3 réponses
Hey ! salut !
Moi, je ferais ca en plusieurs requetes avec du php :
"select distinct ip from matable"
resultat de la requete dans la variable $ip
Pour chaque ip :
"select count(*) from matable where ip='$ip' limit 5000"
calcul de ta moyenne
++
Moi, je ferais ca en plusieurs requetes avec du php :
"select distinct ip from matable"
resultat de la requete dans la variable $ip
Pour chaque ip :
"select count(*) from matable where ip='$ip' limit 5000"
calcul de ta moyenne
++
en fait c'est ce que j'avais fait,
(au passage le limit 5000 est dans la première requete !)
mais la page met extrêmement longtemps à s'afficher... (voire ne s'affiche pas)... d'un autre côté on fait 5000 requetes c'est peut être normal !
(au passage le limit 5000 est dans la première requete !)
mais la page met extrêmement longtemps à s'afficher... (voire ne s'affiche pas)... d'un autre côté on fait 5000 requetes c'est peut être normal !
OK, as-tu essayé avec un GROUP BY dans la requete ?
SELECT count(*) FROM matable GROUP BY ip ORDER BY id DESC LIMIT 0,5000
J'ai testé sur une petite table mysql(3500 lignes), ca marche, et sur une grosse table oracle (2millions de lignes), j'ai le résultat en 1.7 sec, mais sans le LIMIT 0,5000. d'ailleur, pour cette requete, oracle me rejete dès que je rajoute le limit !
SELECT count(*) FROM matable GROUP BY ip ORDER BY id DESC LIMIT 0,5000
J'ai testé sur une petite table mysql(3500 lignes), ca marche, et sur une grosse table oracle (2millions de lignes), j'ai le résultat en 1.7 sec, mais sans le LIMIT 0,5000. d'ailleur, pour cette requete, oracle me rejete dès que je rajoute le limit !
précision pour le limit sous oracle -> oracle ne prend pas en compte cette fonction !
Mais la fonction avg permet de faire une moyenne, si ca peut t'être utile --> https://sqlpro.developpez.com/cours/sqlaz/fonctions/
++
Francois
Mais la fonction avg permet de faire une moyenne, si ca peut t'être utile --> https://sqlpro.developpez.com/cours/sqlaz/fonctions/
++
Francois