在mysql中对一列数据进行计数和排序并将结果作为html列表输出的最佳方法是什么?
示例数据:
**Type**
Train
Car
Car
Car
Bus
Bus
输出应首先按最大计数项排序:
- car(3)
- bus(2)
- train (1)
另外,在大桌子上做这个坏习惯吗?
答案 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
希望帮助这个查询... !!