我正在尝试生成用户在特定时间范围内完成的活动的报告。
这是我的名为"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个用户。我曾尝试写入子查询,但这个主题超出了我目前的技能。
发布于 2012-07-05 04:21:04
SELECT COUNT(*), iduser
FROM register
WHERE date>='$BeginningDate' AND date<'$EndDate'
GROUP BY iduser
ORDER BY COUNT(*) DESC
LIMIT 10请注意,如果“前10名”中的多个用户的计数相同,则只需要前10个用户。如果您想要更复杂的内容,则必须考虑额外的修改。
https://stackoverflow.com/questions/11334969
复制相似问题