3
我希望能夠選擇所有回答「脆脆」的人,並回答「直」,並以所有回答「脆脆」的用戶的百分比形式返回。根據多個選擇語句查詢用戶的百分比
最終的遊戲就是能夠產生一個事實,比如'70%的回答Crunchy的用戶也回答了Straight'。
|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 |
僞代碼將是類似以下內容:
((Select all unique users where answer === Crunchy && where answer === Straight)
/
(Select all unique users where answer === Crunchy))
* 100 = %
到目前爲止,我有一個查詢,選擇誰回答脆脆的,也回答了直所有用戶:
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 *
FROM answers
WHERE (question_id = 1 AND answer = 'Crunchy'
,然後乘以的由100
答案如何完成這個SQL查詢的其餘部分還是有一個更簡單的方法來進行此事?
這正是我所需要的。感謝Barmar。我最初的想法也更加簡潔。 – Stretch0