我想在最近1天内获取最常输入的数据。
这是我的代码:
SELECT tag_id, time,
COUNT(tag_id) AS value_occurrence
FROM tag_rel
GROUP BY tag_id
HAVING time > '$yesterday'
ORDER BY value_occurrence DESC LIMIT 10
代码正在运行但有问题:
我想在7月22日到23日之间休息。
id| tag_id | time |
1 | football | 22,5 july |
2 | basketball | 22,5 july |
3 | football | 22,5 july |
4 | football | 21 july |
我想先前三行按频率排序。
例如: 1-足球 2-篮球
但是我的代码没有采取"足球"。它只是显示"篮球"。因为另外"足球"时间值小于7月22日。
怎么解决呢?
答案 0 :(得分:1)
正确查询您想要的内容会使用where
,而不是having
:
SELECT tag_id, MAX(time) as maxtime,
COUNT(tag_id) AS value_occurrence
FROM tag_rel
WHERE time > '$yesterday'
GROUP BY tag_id
ORDER BY value_occurrence DESC
LIMIT 10;
否则,time
和select
子句中都有having
使用的任意值。