「Crunchy」と回答したすべてのユーザーを選択し、「Straight」と回答して、「Crunchy」に回答したすべてのユーザーの割合として返します。複数のselectステートメントに基づいてユーザーの割合を照会
最後の試合は、Crunchyに回答したユーザーの70%が「Straight」と回答したというような事実を生み出すことです。
SELECT *
FROM
((SELECT *
FROM answers
WHERE (question_id = 1 AND answer = 'Crunchy')) A
JOIN
(SELECT *
FROM answers
WHERE (question_id = 3 AND answer = 'Straight')) B
ON A.user_id = B.user_id)
GROUP BY A.user_id
この意志:これまでのところ、私はカリカリ答えてもストレート答えたすべてのユーザーを選択するクエリを持っている
((Select all unique users where answer === Crunchy && where answer === Straight)
/
(Select all unique users where answer === Crunchy))
* 100 = %
:
|id |question_id | user_id | answer |
|-------------------------------------|
|1 | 1 | 81 | Crunchy |
|2 | 1 | 82 | Crunchy |
|3 | 1 | 83 | Smooth |
|4 | 2 | 81 | Straight |
|5 | 2 | 82 | Diagonal |
|6 | 2 | 83 | Diagonal |
は
擬似コードは、次のようなものになるでしょう両方の回答を選択したすべてのユーザーを選択しますが、私はそれを合計として持つ必要がありますので、最初のものと同じになりますが2番目のクエリで分割することができます。
SELECT *
FROM answers
WHERE (question_id = 1 AND answer = 'Crunchy'
そして100
によってその答えを掛けてどのように私はこのSQLクエリの残りの部分を完了するか、このついて行くために、より簡単な方法はありますか?
これは私が必要としていたものです。 Barmarに感謝します。私が元来持っていたものよりもはるかに簡潔です。 – Stretch0