%的表的所有條目比方說,我們有以下模型:MySQL的:獲取計數,並與給定的條件
- 練習(ID,姓名)的表
- 用戶的表(ID姓名,電子郵件)考試
- 一個表(ID,USER_ID,日)
聯接考試和練習(exam_id間表,exercise_id)
每個用戶都可以使Ø每天考試。
- 每個考試都是由很多練習組成的(擁有並且屬於很多)。
對於每個用戶(登錄時),我想顯示一個表格,顯示所有練習以及每個用戶在給定時間段內進行的考試次數和百分比(使用考試)。
在這個時候,我可以顯示用戶在下面的查詢中給出的所有練習以及他們在給定時間內的百分比。
SELECT
o.user_id,
o.exercise_id,
o.exercise_name,
COUNT(*) AS nb_exams,
(COUNT(*) * 100/(
SELECT COUNT(*)
FROM exams
LEFT JOIN users ON exams.user_id = users.id
WHERE users.id = 1 AND exams.day >= "2015-09-01" AND exams.day <= "2015-09-07"
)) AS percent
FROM (
SELECT
exercises.id AS exercise_id,
exercises.name AS exercise_name,
exams.id AS exam_id,
users.id AS user_id
FROM exercises
LEFT JOIN exercises_exams ON exercises_exams.exercise_id = exercises.id
LEFT JOIN exams ON exercises_exams.exam_id = exams.id
LEFT JOIN users ON exams.user_id = users.id
WHERE users.id = 1 AND exams.day >= "2015-09-01" AND exams.day <= "2015-09-07"
GROUP BY exercise_id,exam_id
) AS o
GROUP BY exercise_id;
但我也想爲0
一個值,顯示他沒有練習又是否有可能與MySQL的一個查詢做到這一點?
編輯 -
這裏是sqlfiddle當前查詢。你會注意到只有3次在考試中使用的練習被返回。我想列出所有與計數和百分比(甚至是第四位0)
能否請您就此成立一個SQL小提琴? –
@vkp我編輯了我的問題與sqlfiddle – obo