2012-07-02 193 views
0

我正在嘗試做出測試答案的百分比。帶百分比的列表

我有MySQL數據庫與測試問題

id | name  | test_id 
---+------------+-------- 
1 | question 1 | 1 
2 | question 2 | 1 
3 | question 3 | 1 
4 | question 4 | 1 
5 | question 1 | 2 
6 | question 2 | 2 
7 | question 3 | 2 
8 | question 4 | 2 

answers,我把所有的答案,從測試3個表

tests

id | name 
---+-------- 
1 | test 1 
2 | test 2 

questions

id | question_id 
---+------------- 
1 | 1 
2 | 2 
3 | 5 
4 | 6 
5 | 7 
6 | 8 

如何在測試中獲得已完成問題百分比的列表。在這種情況下是這樣的:

name | percentage 
-------+----------- 
test 1 | 50 
test 2 | 100 
+0

你在哪裏得到的百分比是多少? – jcho360

+0

我應該計算它們 - 100 *計數(來自特定測試的答案)/計數(來自特定測試的所有答案) – Goldie

回答

3

嘗試

select t.name, 
     cast((count(a.id)/count(q.id)) * 100 as unsigned) as percentage 
from tests t 
left outer join questions q on q.test_id = t.id 
left outer join answers a on a.question_id = q.id 
group by t.name 

請參見本SQLFiddle例如

+0

它不起作用。 – Goldie

+0

我更新了我的答案,結果我得到了100。 –

+0

而且你更新得很好。謝謝。 – Goldie