mysql - MySQL 中添加 DISTINCT 运算符的 SQL MIN 和 MAX 结果

标签 mysql sql

我在获取我想要的结果集时遇到了一些困难(多年来没有编写查询)。我的表 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/

相关文章:

Mysql - 如何在指针上使用用户定义的变量

MySQL INSERT...SELECT 4.2 亿条记录的大型数据集

mysql - 如何组合这个 MySQL 查询?

sql - 甚至使用 PostgreSQL 进行数据采样

mysql - SQLQuery - 跨两个表的 WHERE 语句返回 0 个结果

php - 使用 Laravel 插入当前日期时间

sql - 错误 : "Bulk load data conversion error (type mismatch or invalid character for the specified codepage) for row 2, column 1 (Date)."

php - 在 PHP 中,每页多少次 DB 调用是可以的?

使用连接进行 MySQL 关注者查询

sql - 汇总数据并获取 SUM 组