假设我们有一个名为cars的表,包含以下列:manufacturer(制造商)、model(车型)、year(年份)、sales(销量)。
我们可以使用以下SQL查询来显示每年每个制造商的畅销车型:
SELECT year, manufacturer, model
FROM (
SELECT year, manufacturer, model,
ROW_NUMBER() OVER(PARTITION BY year, manufacturer ORDER BY sales DESC) as rn
FROM cars
) t
WHERE rn = 1
ORDER BY year, manufacturer
这个查询中使用了窗口函数ROW_NUMBER()来对每个年份和制造商的车型按销量进行排序,并为每个组分配一个行号。然后,外部查询过滤出每个组中行号为1的记录,即销量最高的车型。最后的结果按年份和制造商排序。
请注意,这个查询假设每年每个制造商的车型销量不会有并列的情况,如果有并列销量的车型,结果可能会有多个车型显示出来。