我有這個表中的數據:我如何獲得沒有失敗科目的學生的平均水平?
id_student | Grade
1 | 8
2 | 10
3 | 6-- Fail
1 | 10
到一個不同的主題每個等級的引用和預期的結果應該是:
id_student | AVG
1 | 9
2 | 10
請幫助!
我有這個表中的數據:我如何獲得沒有失敗科目的學生的平均水平?
id_student | Grade
1 | 8
2 | 10
3 | 6-- Fail
1 | 10
到一個不同的主題每個等級的引用和預期的結果應該是:
id_student | AVG
1 | 9
2 | 10
請幫助!
類似@scaisEdge,但不是一個子查詢您使用條件計數,看看有多少失敗年級有每個學生。然後只選擇0失敗的那個。
select id_student, avg(grade)
from my_table
group by id_student
HAVING COUNT(CASE WHEN grade <= 6 THEN 1 END) = 0
SELECT AVG(Grade) FROM TABLE WHERE Grade > 6
所以這個選擇等級的平均從表(更改表到你的表名),其中等級爲不及格以上(我假設其6從你的問題)
這只是刪除失敗的成績,OP要求學生沒有失敗成績。 –
你可以使用一個不是在和一個子查詢(和明顯的一組由AVG)
select id_student, avg(grade)
from my_table
where id_student not in (select id_student
from my_table where grade <= 6)
group by id_student
不應該是子查詢語句中where grade <= 6嗎?或者將'不在'改成'in'? –
@MoeA ..正確答案更新..非常感謝 – scaisEdge
感謝您的答案,但查詢不顯示任何東西。但@Juan Carlos Oropeza的查詢完美無缺。不管怎麼說,還是要謝謝你。 –
非常感謝。完美的作品。你拯救了我的生命。 :) –