0

私はこのようなテーブルを持っています:

id make model year
1 chevy camaro 1969
2 chevy camaro 1967
3 ford mustang 1967
4 chevy corvette 1984
5 pontiac gto 1971
6 pontiac grandam 1987

makeの個別の値ごとに1行(すべての列)を含むレコードセットを返したい。結果の例:

1 chevy camaro 1969
3 ford mustang 1967
5 pontiac gto 1971

順序は私にとって重要ではありません。決定論的である必要はありません。これにより、テーブルの内容全体を開発者に送信しなくても、さまざまなユースケースのサンプルデータを簡単に選択できます。

4

1 に答える 1

2

MySQLでは、次のことで解決できる場合があります。

SELECT id, make, model, year
  FROM AnonymousTableAboutCars
 GROUP BY make, model;

他のほとんどのSQLDBMSでは、おそらく次のようにします。

SELECT id, make, model, year
  FROM AnonymousTableAboutCars AS a
  JOIN (SELECT MIN(id)
          FROM AnonymousTableAboutCars
         GROUP BY make, model
       ) AS m
    ON a.id = m.id;

骨材の選択はあなた次第です。MAXは、有効で決定論的な代替手段として頭に浮かびます。

于 2012-05-16T02:15:10.663 に答える