我有一个名为 的表trends_points
,该表具有以下列:
- id(行的唯一id)
- userId(在表中输入的用户的 id)
- 术语(一个词)
- 时间(unix 时间戳)
现在,我正在尝试在此表上运行查询,它将获取特定时间范围内的行,按特定时间范围内列term
在表中出现的次数排序...例如,如果表具有以下内容行:
id | userId | term | time
------------------------------------
1 28 new year 1262231638
2 37 new year 1262231658
3 1 christmas 1262231666
4 34 new year 1262231665
5 12 christmas 1262231667
6 52 twitter 1262231669
我希望这些行按如下顺序排列:
new year
christmas
twitter
这是因为“新年”在时间范围内出现了 3 次,“圣诞节”出现了两次,而“推特”只有一行。
到目前为止,我认为这是一个简单的 WHERE 查询的特定时间范围部分和一个 GROUP BY 来阻止相同的术语在列表中出现两次。
这将进行以下查询:
SELECT *
FROM `trends_points`
WHERE ( time >= <time-period_start>
AND time <= <time-period_end> )
GROUP BY `term`
有谁知道我将如何做查询的最后一部分?(按包含相同“术语”列值的行数对查询结果进行排序......)。