次の列名を持つテーブルがあります: audit_name、audit_choice、および "slno" を自動インクリメント主キーとして使用し、出力データには使用しません。
audit_name は繰り返すことができ、audit_choice の値は「合格」、「失敗」などの特定の値に限定されます。
私のクエリの予想される出力は、「Audit_name」ごとに「合格」カウントと「失敗」カウントの数を取得することです。
これは私が試したクエリですが、約 1,000 レコードを実行するには約 3 ~ 4 分かかります。
SELECT audit_name,
(SELECT COUNT(*) AS Passed FROM audit AS p1
WHERE p1.audit_name=p2.audit_name AND p1.audit_choice="Passed") AS Passed,
(SELECT COUNT(*) AS Failed FROM audit AS p3
WHERE p3.audit_name=p2.audit_name AND p2.audit_choice="Failed") AS Failed
FROM audit AS p2
GROUP BY audit_name
クエリを最適化する方法を教えてください。