私はこのテーブルを持っています:
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;
このクエリは永遠にかかり、1 日経ってもまだ終了していません。これは EXPLAIN の結果です。
idx_id と idx_code は、ID と ITEM のインデックスです。
クエリを改善して、より高速に実行し、うまくいけば終了できるようにするためのヒントを教えてください。ありがとう