2012-05-21 36 views
0

一列的前十名之列的,我想从表中的MySQL数据库得到某种十大名单。 下面是一个例子。比方说,我有这个表:得到某种从表

ID Username Town 
1 foo   Munich 
2 bar   Kolding 
3 herp  Bordeaux 
4 derp  Bordeaux 
5 test  Cologne 
6 bla   Munich 
7 blob  Bordeaux 

而现在,我想获得在“城”中最常见的项目,如:

Bordeaux 3 
Munich 2 
Cologne 1 
Kolding 1 

什么样的查询可以做到这一点?

+0

简短的回答:'COUNT' – keyser

+0

Weeeee,看所有的downvotes。我也爱你。 –

+0

这是因为你没有表现出任何的研究工作正(即,这是基本的SQL) – keyser

回答

0

这个怎么样。

SELECT Town, Count(1) as TownCount 
FROM myTable 
GROUP BY Town 
ORDER BY TownCount DESC; 

如果你想只有10条记录,使用

SELECT Town, Count(1) as TownCount 
FROM myTable 
GROUP BY Town 
ORDER BY TownCount DESC 
LIMIT 10; 
2
SELECT Town, COUNT(*) AS cnt FROM my_table GROUP BY Town ORDER BY cnt DESC LIMIT 10 
0

试试这个 -

SELECT town, 
     count(*) 
FROM tablename 
GROUP BY town;