1

テーブル:

Classes(class, type, country, numGuns, Bore, displacement)
Ships(name, class, launched)

質問: 各クラスについて、そのクラスの最初の船が進水した年を見つけてください?

私の試み:

         select class, min(launched) from Ships
         group by (class)

提供された回答:

         select class, launched from ships as s1
         where launched <= ALL (select year from ships as s2
                                where s2.class = s1.class)

私の質問は、クエリから目的の結果が得られるかどうかです。特にテーブルに年という列がない場合、回答が提供するほど複雑かどうかはよくわかりません。

クラスのグループの最小年は、そのクラスの最初の船に対応する必要があります。

4

3 に答える 3

1

はい、あなたの答えはうまくいきます。

実際、そのクエリは、そのクラスが開始された最初の年に、クラス内のすべての船と打ち上げを実際に返すため、提供された回答よりも優れています。

于 2013-03-10T18:12:36.067 に答える
0
select c.class , min (launched)
from classes c left join ships s on c.class = s.class 
group by c.class
;
于 2019-10-13T12:22:01.073 に答える