私はまだSQLの基礎を掴んでいます。どんな助けでも大歓迎です。SQLクエリの支援をお願いします
テーブルはTeamRankingsです。列は次のとおりです。
score | qualities_id | team_id | year | source_id
チームは、特定の年の異なる資質に関して採点されます。所与のチームに複数のスコアを割り当てることができることに留意されたい(それぞれが異なるソースからのものである)。同様に、所与のチームは与えられた年の間に全くスコアを持たないかもしれない。ここで
が問題だ:単一の品質、チームのリスト、および年のリストを考えると
、私は各チーム/年の単一のスコアを見つけたいです。与えられたチーム/年に複数の情報源から利用可能な得点がある場合、私は最も低いsource_idで得点を選んでいきたいと思います。
これを行う方法はGROUP BY
team_id、year、quality_idになっていると思いますが、何らかの方法で上位のソースIDを除外します。しかし、私はそのフィルタリングがどこで起こるのか混乱しています。 HAVING
句、またはWHERE
句にはありません。サブクエリが必要ですか?