Mysql查询以选择“计数”列?

Mysql查询以选择“计数”列?,mysql,Mysql,我正在使用MySql,我有 orders +--------+---------+-------------+ | ID | PRO_ID | CUS_ID | +--------+---------+-------------+ | 1 | 1 | 2 | | 2 | 1 | 79 | | 3 | 1 | 6 | | 4 | 2

我正在使用MySql,我有

orders
+--------+---------+-------------+
| ID     | PRO_ID  | CUS_ID      | 
+--------+---------+-------------+
| 1      | 1       | 2           |
| 2      | 1       | 79          |
| 3      | 1       | 6           |
| 4      | 2       | 41          |
| 5      | 2       | 28          |
| 6      | 2       | 33          |
| 7      | 3       | 2           |
| 8      | 4       | 9           |
| 9      | 4       | 23          |
| 10     | 5       | 43          |
| 11     | 5       | 45          |
| 12     | 5       | 78          |
| 13     | 5       | 67          |
| 14     | 6       | 12          |
| 15     | 6       | 95          |
如何获得5个顶级专业ID及其计数。范例

+---------+-------------+
| PRO_ID  | COUNT       | 
+---------+-------------+
| 5       | 4           |
| 1       | 3           | 
| 2       | 3           | 
| 4       | 2           |
| 6       | 2           | 
我的订单表有200万行,我需要更快的查询。谢谢你的帮助

select PRO_ID,count(PRO_ID) as count 
from orders 
group by PRO_ID 
order by count desc
limit 5
如果查询速度似乎较慢,请尝试在表上添加索引。您可以执行以下操作:

select PRO_ID, COUNT(*) as total
from test 
group by PRO_ID 
ORDER BY total desc, PRO_ID
limit 5

下面是

为该特定字段应用索引并继续执行此查询…我希望它将为您提供更好的性能

select PRO_ID,count(PRO_ID) as prod_count 
from orders
group by PRO_ID
order by prod_count desc 
limit 5

我认为OP需要按计数的顺序来解释。我认为这就是他试图在期望的输出中解释的