我有这张桌子:
ID ITEM
-----------------
0001 345
0001 345
0001 120
0002 567
0002 034
0002 567
0003 567
0004 533
0004 008
......
为了得到这个结果:
ID ITEM CNT
1 008 0
1 034 0
1 120 1
1 345 2
1 533 0
1 567 0
2 008 0
2 034 1
...
CNT 是每个不同 ID 的每个项目的出现次数
我运行这个查询:
select driver.id, driver.item, coalesce(count(t1.id), 0)
from (select id.id, item.item
from (select distinct id from Table1) id cross join
(select distinct item from Table1) item
) driver left outer join
Table1 t1
on driver.id = t1.id and driver.item = t1.item
group by driver.id, driver.item;
此查询一直持续,一天后仍未完成。这是 EXPLAIN 的结果:
idx_id 和 idx_code 是 ID 和 ITEM 的索引
你能给我一些关于如何改进我的查询的提示,以便它可以更快地运行并希望完成吗?谢谢