次の構造のスクリプトがあります。
SELECT SUM(CASE WHEN pf.info IS NOT NULL THEN 1 ELSE 0 END)
FROM summary s
LEFT JOIN (SELECT id, info FROM items GROUP BY id) pf ON s.id=pf.id
GROUP BY s.date
私が欲しいのは、「概要」にあり、「アイテム」にあるIDを数えることです。「アイテム」には同じIDが数回繰り返されているため、GROUP BYを実行します。
このスクリプトは思い通りに動作しますが、非常に遅く、単純な LEFT JOIN を実行する (そして各 ID を数回カウントする) よりもはるかに遅くなります。私はそれよりも小さな部分空間が必要であり、それはより簡単なはずなので、これは意味がないようです。
問題は、クエリを再構築して高速化するにはどうすればよいかということです。