我有一个mysql表如下 -
crId ccId ccatId entryDate
458 186 12 2016-01-01
459 186 37 2016-01-01
460 186 117 2016-01-01
461 187 12 2016-01-04
462 187 117 2016-01-05
463 187 117 2016-01-07
464 187 12 2016-01-07
现在,我想从这个表中获取数据,如twitter趋势部分。
我该怎么做?我找不到解决方案?有人可以帮帮我吗?
预期结果 -
12
3 times
117
3 times
12
2 times
答案 0 :(得分:1)
尝试此查询:
SELECT ccatId, count(ccatId) AS rank FROM `table_name` GROUP By ccatId ORDER BY rank DESC;
它会返回这样的内容,
+--------+-------+
| ccatId | rank |
+--------+-------+
| 12 | 3 |
| 117 | 3 |
| 37 | 1 |
+--------+-------+
如果您想要上周的参赛作品,那么只需输入一个WHERE子句。
答案 1 :(得分:0)
请检查以下查询:
SELECT ccatId, count( ccatId ) AS count FROM `tablename` WHERE `entryDate` > DATE_SUB( NOW( ) , INTERVAL 1 WEEK ) GROUP BY ccatId ORDER BY count DESC
它会返回这样的内容,
+--------+-------+
| ccatId | count|
+--------+-------+
| 12 | 2 |
| 117 | 2 |
+--------+-------+