2016-11-22 18 views
0

出席率が75%未満の学生USNのリストを出席率と不足している件名コードとともに生成するには、次のクエリを実行するとエラーが発生します。どこが間違っていますか?それを修正できますか?"グループ機能の無効な使用"エラーを修正するにはどうすればよいですか?

select attendance.usn,avg(attendance.ispresent),schedule.subcode 
where avg(attendance.ispresent) in 
(select avg(attendance.ispresent) having avg(attendance.ispresent)<0.75); 
+0

の可能性のある重複した[は、MySQL 5.6のために、任意の\ _VALUE機能はありますか?](http://stackoverflow.com/questions/37089347/is-there- any-value-capability-for-mysql-5-6) – e4c5

+0

from句なし、グループ別、サンプルデータなし。 –

答えて

0

どちらのSELECTにもFROM句がありません。

内部クエリではHAVING句が使用されますが、GROUP BYがないため意味がないため、1つのレコードしか生成されません。

私はAVG機能がここで何とか達成されるはずです。何を平均化しようとしていますか?あなたは0と1をパーセンテージに変えるには難しい方法としてAVGを使用しようとしていますか?もしそうなら、ispresentの定義は何ですか? 0または1の整数の場合、すべてのispresentが1でない限り、avg(ispresent)は0になります。

何かを意味する場合は、外側の選択にGROUP BYが必要です。

おそらく何をしたいことは何かされています

select usn, subcode, avg(cast(ispresent as float)) 
from attendance 
join schedule on ??? 
group by usn, subcode 
having avg(cast(ispresent as float))<.75 
関連する問題