私の望むようにクエリを取得するのに問題があります。私は2つのテーブルを持っています: 通路と質問の表関連するテーブルから2回カウントするmysqlクエリ
質問表には、通過の外来キーがあります。質問テーブルには、アクティブ、非アクティブ、またはレビューのいずれかのステータスの列があります。私は積極的な質問の数を得ることができましたが、今ではレビューの質問の数も得たいと思っていますが、それは正しいと思われます。以下は私がこれまでに思いついたことですが、questioninviewのコラムでは私にnumquestionsと同じ数字が与えられています。
SELECT
p."id",
COUNT(q."PassageId") as numQuestions,
COUNT(q2."PassageId") AS questionsInReview,
ROUND(AVG(q."level")) as "questionLevel"
FROM
"Passages" as p
LEFT OUTER JOIN "Questions" as q ON p.id=q."PassageId" AND q."status" = 'active'
LEFT OUTER JOIN "Questions" as q2 on p.id=q2."PassageId" where q2."status" = 'review'
GROUP BY p.id
ORDER BY p.id ASC
質問の件数を確認するにはどうすればよいですか?
EDIT:(未テスト)のようなものについては何
SELECT
p.id,
SUM(CASE WHEN q."status" = 'active' THEN 1 ELSE 0 END) AS numQuestions,
SUM(CASE WHEN q."status" = 'review' THEN 1 ELSE 0 END) AS questionsInReview,
ROUND(AVG(CASE WHEN q."status" = 'active' THEN q."level" ELSE Null END)) as questionLevel
FROM "Passages" AS p
LEFT JOIN "Questions" as q ON p.id = q."PassageId"
GROUP BY p.id
ORDER BY p.id ASC
これは私にとっては最も簡単な解決策でした。解決策を得るために質問を編集しました。このクエリを微調整して機能させるには – paulducsantos