我在获取我想要的结果集时遇到了一些困难(多年来没有编写查询)。我的表 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)
...但是,我的子查询返回多行,导致查询出错。
如果有任何帮助或建议,我将不胜感激!
最佳答案
在品牌和型号上使用 GROUP BY,这应该可以满足您的需求。
SELECT MIN(year) AS startyear, MAX(year) as endyear, make, model
FROM itemdata GROUP BY make, model;
关于mysql - MySQL 中添加 DISTINCT 运算符的 SQL MIN 和 MAX 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11129331/