0

我的 MySQL 表如下:

ID  term  timestamp

1   foo    xxxx
2   bar    xxxx
3   bar    xxxx
4   foo    xxxx
5   foo    xxxx
6   foo    xxxx
7   xxx    xxxx

我希望生成一个列表,按该术语的数量顺序显示最常用的术语

即最终结果:

foo 
bar
xxx

我应该使用什么查询?我做了一些谷歌搜索,但我不太确定我在寻找什么 - COUNT / GROUP BY 等。

4

6 回答 6

4

以下 SQL 查询应该为您的问题提供解决方案。

SELECT term
FROM tablename
GROUP BY term
ORDER BY COUNT(*) DESC
于 2012-05-22T11:34:57.020 回答
2
SELECT COUNT(*), term FROM table GROUP BY term ORDER BY COUNT(*) DESC;
于 2012-05-22T11:34:58.113 回答
1

尝试

SELECT term, Count(*) AS cnt FROM mytable GROUP BY term ORDER BY cnt DESC
于 2012-05-22T11:35:39.087 回答
1

GROUP BY是正确的。试试这个:

SELECT term FROM table
GROUP BY term
ORDER BY COUNT(term) desc
于 2012-05-22T11:38:29.830 回答
0
SELECT TERM
FROM @table
GROUP BY TERM
HAVING COUNT(*) > 5 --replace with number you want
ORDER BY COUNT(*) 
于 2012-05-22T11:36:09.973 回答
0

这个 SQL 查询应该这样做:

SELECT term FROM my_table GROUP BY term ORDER BY COUNT(term) DESC;
于 2012-05-22T11:43:11.980 回答