私はSQLの経験はあまりありませんが、基本的なクエリを構築することはできますが、これは複雑すぎて解決できません。
それぞれが必要な結果を個別に提供する2つのクエリがありますが、必要な最終結果を得るにはそれらを組み合わせる必要があります。
1 つのクエリで、特定の学生のすべての「スコア」を取得し、平均を返します。もう 1 つのクエリでは、テーブルから最上位と最下位のレコードを取り除きます。
これらのクエリを組み合わせて、最初に最高スコアと最低スコアを取り除き、次に残りのレコードのみから平均スコアを返したいと考えています。使用する正しい構文を教えてください。
私のクエリ:
これは、すべての最高スコアと最低スコアを返します。
SELECT *
FROM `scores`
WHERE `tot_score` = (
SELECT MAX( `tot_score` )
FROM `scores` )
OR `tot_score` = (
SELECT MIN( `tot_score` )
FROM `scores` )
これは平均スコアを返します。
SELECT `pres_id`, COUNT( `pres_id` ) , ROUND( AVG( `tot_score` ) , 2 ) , `username`, `name`, `pres_day`
FROM `scores`, `users`
WHERE `users.id_user` = `scores.pres_id`
GROUP BY `pres_id`
これらをどのように組み合わせて必要な結果を得ることができますか?