获取时间范围内的顶级用户MySQL

时间:2012-07-04 20:12:21

标签: php mysql

我正在尝试生成用户在特定时间范围内完成的活动的报告。

这是我的表名为“register”的结构,每次用户在网站上执行操作时,它都会在表中记录用户的ID,用户执行的操作类型以及日期,这是由PHP函数time()提供的。该表如下所示:

iduser | Action | Date
82919  |  0     | 1339081680
89754  |  5     | 1339084560
88135  |  1     | 1339585320
82919  |  0     | 1339083420
26367  |  1     | 1349096510

我使用以下查询来选择时间范围内的记录:

SELECT * FROM register WHERE date>='$BeginningDate' AND date<'$EndDate' ORDER BY date DESC

这个查询运行得非常好,但我现在还不知道如何编写查询,除了生成属于特定时间范围的记录列表外,还将计算哪些是拥有更多记录的前10位用户在那段时间内。我曾尝试编写子查询,但该主题超出了我目前的技能。

1 个答案:

答案 0 :(得分:4)

SELECT COUNT(*), iduser
FROM register 
WHERE date>='$BeginningDate' AND date<'$EndDate'
GROUP BY iduser
ORDER BY COUNT(*) DESC
LIMIT 10

请注意,如果&#34;前10&#34;中的多个用户的计数相同,则只需要前10个。如果您想要更复杂的内容,则必须考虑额外的修改