假设我有一个包含四列的表TABLE,COL 1..4
COL1 COL2 COL3 COL4
Truck Toyota Pickup 5000
Car Lexus Sedan 3000
Car Lexus Sedan 6000
Truck Toyota Pickup 2000
Car Lexus Sedan 2000
我需要能够从查询中返回所有唯一COL1(在这种情况下为卡车,汽车)以及从最高总计数排序的事件总数以及可能的其他一些字段(例如COL2) )虽然不需要对这些工作进行任何工作,因为唯一性仅基于一列,因此在这种情况下将返回:
Car Lexus 3
Truck Toyota 2
这似乎微不足道,但我不确定如何以最有效的方式执行查询(MySQL)和(可能会每秒进行数百次)。
任何帮助表示感谢。
答案 0 :(得分:1)
这很简单:
SELECT col1, col2, COUNT(*) count
FROM table1
GROUP BY col1, col2 /* I like to include all non-aggregate cols for sanity */
ORDER BY count DESC
哦,你至少需要col1
的索引。
所有非聚合列(col1,col2)
上的覆盖索引可以进一步提高性能,因为可以从索引满足查询。