Mysql 如何对每年进行查询?

Mysql 如何对每年进行查询?,mysql,sql,Mysql,Sql,我想问一个问题:每年哪家生产商的汽车销量最多?我可以在定义年份的地方编写一个查询,但是如何为每年自动列出它呢 SELECT producer, COUNT(type) AS counter FROM `car` INNER JOIN producer ON car.producer= producer.id WHERE produce_year = 2000 GROUP BY type ORDER BY COUNT(type) DESC LIMIT 1 通过将年份添加到组中。删除WH

我想问一个问题:每年哪家生产商的汽车销量最多?我可以在定义年份的地方编写一个查询,但是如何为每年自动列出它呢

SELECT producer, COUNT(type) AS counter
FROM `car` 
INNER JOIN producer ON car.producer= producer.id 
WHERE produce_year = 2000 
GROUP BY type 
ORDER BY COUNT(type) DESC 
LIMIT 1

通过将年份添加到
组中。删除
WHERE
子句

SELECT producer, produce_year, COUNT(type) AS counter
FROM `car` 
INNER JOIN producer ON car.producer = producer.id 
GROUP BY producer, produce_year 
ORDER BY COUNT(type) DESC 
这将有助于:

select * from (SELECT producer, COUNT(type) as cou
,RANK() OVER (PARTITION BY produce_year ORDER BY COUNT(type)) AS myrank
FROM car c 
INNER JOIN producer p ON c.producer= p.id  
GROUP BY  produce_year) 
where myrank=1;

你能提供一些样本数据和预期结果吗?请提供样本数据,你需要在你的选择中介绍生产年份。你的分组方式不正确,应该按生产商分组。我认为排名应该根据生产商销售汽车所产生的价值进行。如果可能,请提供表的模式和一些示例数据。您使用的是哪个MySQL版本?如何每年只返回一个生产者?@JoakimDanielson,这是问题所在吗?没有样本数据和预期结果让我猜测,也许我错了……每年哪家生产商的汽车销量最多?@JoakimDanielson,我会等待样本数据和预期结果。并了解OP使用的是哪个MySQL版本。