En mein Blog In der rechten Navigationsleiste zeige ich die 10 beliebtesten Artikel in Bezug auf die Anzahl der Seitenaufrufe an. So bekomme ich das:
SELECT *
FROM entries
WHERE is_published = 1
ORDER BY hits DESC, created DESC
LIMIT 10
Ich würde gerne die Top 10 nach Seitenaufrufen anzeigen pro Tag. Ich verwende MySQL. Gibt es eine Möglichkeit, dies in der Datenbank zu tun?
Übrigens, die created
ist ein Datum und eine Uhrzeit.
UPDATE: Ich glaube, ich habe mich nicht klar ausgedrückt. Ich möchte, dass der Blogbeitrag mit 10.000 Treffern, der vor 1.000 Tagen veröffentlicht wurde, die gleiche Popularität hat wie der Blogbeitrag mit 10 Treffern, der vor 1 Tag veröffentlicht wurde. In Pseudo-Code:
ORDER BY hits / days since posting
...wo hits
ist einfach ein int, der jedes Mal erhöht wird, wenn der Blogbeitrag angesehen wird.
OK, ich werde Folgendes verwenden:
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
Danke, Stephen! (Ich liebe diese Seite...)