2

求めている結果セットを取得するのに苦労しています (何年もクエリを書いていません)。私のテーブル itemdata は次のようになります。

year make model
1972 foo  bar
1973 foo  bar
1975 foo  bar
1971 bar  foo
1972 bar  foo
1973 bar  foo
1974 bar  foo
1975 bar  foo
1976 bar  foo

私の目標は、次のような開始年と終了年を持つ個別のメイク モデルのペアで構成される結果セットを返すことです。

startyear endyear make model
1972      1975    foo  bar
1971      1976    bar  foo

何らかの理由で (SQL の知識が不足している可能性が最も高い)、必要な結果セットが得られません。いくつかのクエリを試しましたが、次の方法で成功すると思いました。

SELECT MIN(year) as startyear , MAX(year) as endyear, make, model 
FROM itemdata 
WHERE model = (SELECT DISTINCT model FROM itemdata)

...しかし、複数の行で返される私のサブクエリは、クエリでエラーになりました。

助けやアドバイスをいただければ幸いです。

4

1 に答える 1

2

代わりに、make と model で GROUP BY を使用すると、必要なものが得られるはずです。

SELECT MIN(year) AS startyear, MAX(year) as endyear, make, model
FROM itemdata GROUP BY make, model;
于 2012-06-20T23:09:07.683 に答える