私はデータベースで最終試験を受けています。サンプルのいくつかの問題を解決していたので、いくつか問題が発生しました。SUMのHAVING + MAXを使用したSQL - INTERECTECT
私は2つのテーブルの間に多対多の関係を持っています。私がしなければならない何
Player PlayerTournament Tournament
------- -------------------- -------------------
pk id_player fk id_player pk id_tournament
name fk id_tournament name
rank year city
country victories court_surface
tournament_type
は次のとおりです。
1)。 2016年に粘土トーナメントで少なくとも1試合に勝ったが、どんな芝生大会にも参加しなかった選手(名前と国)を記載してください。
2)。最大の勝利数を持つ選手(名前、国、勝利の総数)を列挙してください。
私はこのような何かを考えていた:
1. SELECT P.NAME, P.COUNTRY
FROM Player P INNER JOIN PlayerTournament PT
ON P.ID_PLAYER= PT.ID_PLAYER
INNER JOIN Tournament T
ON T.ID_TOURNAMENT= PT.ID_TOURNAMENT
WHERE T.COURT_SURFACE="clay"
GROUP BY (something)
HAVING SUM(PT.VICTORIES)>=1
INTERSECT
(same select and inner joins)
WHERE T.COURT_SURFACE="grass"
GROUP BY (something)
HAVING COUNT(ID_PLAYER)=0
2.SELECT P.NAME, P.COUNTRY, SUM(PT.VICTORIES)
FROM Player P INNER JOIN PlayerTournament PT
ON P.ID_PLAYER= PT.ID_PLAYER
GROUP BY ...
HAVING sum of victories = max sum of victories
私は問題を考えた方法が正しいかどうかはわからない、私は「持つ」の文を支援する必要があります。