【发布时间】:2014-01-03 21:38:17
【问题描述】:
我有一个数据库表,用于存储对文章的投票。我想查询该表以查找过去 30 天内平均获得最高总票数的文章。
我正在寻找一些关于我应该如何做到这一点的建议,我猜我可以用 PHP 或 MYSQL 做到这一点。虽然我对 PHP 有更好的理解,但我认为使用 MYSQL 来获得结果是更好的做法。
CREATE TABLE IF NOT EXISTS `ratings` (
`id` int(11) NOT NULL,
`article_id` int(11) NOT NULL AUTO_INCREMENT,
`rating` int(11) NOT NULL,
`ip` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
`timestamp` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=2054 ;
在给定这个表结构的情况下,有没有办法求和并找到平均值。
谢谢。
艾伦。
【问题讨论】:
-
SELECT AVG(rating) avgrating FROM ratings GROUP BY article_id WHERE timestamp > DATE_SUB(now(), INTERVAL 30 DAY) ORDER BY avgrating DESC