スキーマを含む 2 つのテーブルを次に示します。
船(名前、発売年、国、銃の数、銃のサイズ、排気量)
戦闘(船、戦闘名、結果)
典型的な Ships タプルは次のようになります:
(「ニュージャージー」、1943、「アメリカ」、9、16、46000)
これは、戦艦ニュージャージーが 1943 年に進水したことを意味します。それは米国に属し、サイズ 16 インチ (ボア、またはバレルの内径) の 9 門の銃を搭載し、重量 (航海用語で変位) 46,000 トンでした。
バトルの典型的なタプルは次のとおりです。
(「フッド」、「北大西洋」、「沈没」)
つまり、HMSフッドは北大西洋の戦いで沈没しました。他に考えられる結果は、'ok' と 'damaged' です。
スリガオ海峡の海戦では 、その戦闘に参加した (1 隻以上の戦艦が参加した) 国ごとに、沈められた戦艦の数を答えてください。注: この質問は非常にトリッキーです。特に、ある国が戦闘に参加したが、船を沈めなかった (歴史的な) ケースに対処する必要があります。
これまでに試したこと。
SELECT country,COUNT(name)
FROM ships RIGHT JOIN battles
ON ships.name=battles.ship
WHERE battleName='Battle1' AND result='sunk'
GROUP BY country