MySQL对行进行计数和排序

时间:2010-05-10 16:17:30

标签: mysql sorting count

在mysql中对一列数据进行计数和排序并将结果作为html列表输出的最佳方法是什么?

示例数据:

**Type**
Train
Car
Car
Car
Bus
Bus

输出应首先按最大计数项排序:

 - car(3)
 - bus(2)
 - train (1)

另外,在大桌子上做这个坏习惯吗?

3 个答案:

答案 0 :(得分:7)

尝试此查询:

select type, count(*) from vehicles group by type order by count(*) desc

关于:

  

另外,在大桌子上做这个坏习惯吗?

这取决于你的桌面引擎。 MyISAM使用count(*)等聚合函数非常快。但是,InnoDB必须每次扫描表并计数。所以我不建议count(*)使用大型InnoDB表。相反,您可以在元表中存储“count”变量,并仅在插入/更新时更新它。

答案 1 :(得分:3)

select type, COUNT(*) from data group by type

答案 2 :(得分:1)

尝试此查询:

select t.type, count(t.type) as typecount from type as t group by type order by typecount desc

希望帮助这个查询... !!