Sur my blog, j'affiche dans la navigation de droite les 10 articles les plus populaires en termes de hits de pages. Voilà comment je reçois que:Quel est le meilleur moyen de calculer les hits de pages par jour dans MySQL?
SELECT *
FROM entries
WHERE is_published = 1
ORDER BY hits DESC, created DESC
LIMIT 10
Ce que je voudrais faire est de montrer le top 10 en termes de la page par jour frappe. J'utilise MySQL. Y a-t-il un moyen de le faire dans la base de données? Le champ created
est un datetime.
MISE À JOUR: Je pense que je n'ai pas été clair. Ce que je veux, c'est pour le billet de blog avec 10.000 visites publiées il y a 1.000 jours pour avoir la même popularité que l'article de blog avec 10 réponses publiées il y a 1 jour. En pseudo-code:
ORDER BY hits/days since posting
... où hits
est juste un entier qui est incrémenté à chaque fois que le message de blog est affiché.
OK, voici ce que je vais utiliser:
SELECT *, AVG(
hits/DATEDIFF(NOW(), created)
) AS avg_hits
FROM entries
WHERE is_published = 1
GROUP BY id
ORDER BY avg_hits DESC, hits DESC, created DESC
LIMIT 10
Merci, Stephen! (J'aime ce site ...)
C'est la bonne idée, mais ne voudrais-je pas ORDER BY avg_hits? –
Ouais, j'ai eu environ 5 réponses dans les 5 dernières minutes et je semble continuer à oublier des choses ... –
Il y a une faute de frappe dans votre requête, btw. Vous avez besoin d'un autre parent de clôture dans le select. –