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 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;

对于大多数其他 SQL DBMS,您可能会这样做:

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 回答