Mysql查询以选择“计数”列?
我正在使用MySql,我有Mysql查询以选择“计数”列?,mysql,Mysql,我正在使用MySql,我有 orders +--------+---------+-------------+ | ID | PRO_ID | CUS_ID | +--------+---------+-------------+ | 1 | 1 | 2 | | 2 | 1 | 79 | | 3 | 1 | 6 | | 4 | 2
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需要按计数的顺序来解释。我认为这就是他试图在期望的输出中解释的