我有一张这样的表:
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
订单对我来说并不重要;它不需要是确定性的。这样我就可以轻松地为不同的用例选择示例数据,而无需将整个表内容发送给开发人员。
答案 0 :(得分: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是一种有效的,确定性的选择。