【SQL18】编写一个SQL查询,用于选择每种销售产品的第一年的产品ID、年份、数量和价格
程序员文章站
2022-03-05 11:21:29
...
编写一个SQL查询,用于选择每种销售产品的第一年的产品ID、年份、数量和价格
查询结果格式如下所示:sales_table
sale_id product_id year quantity price
1 100 2008 10 5000
2 100 2009 12 5000
7 200 2011 15 9000
9 300 2009 14 6000
11 300 2011 18 6500
product_table
product_id product_name
100 Nokia
200 Apple
300 Samsung
返回如下结果:
product_id first_year quantity price
100 2008 10 5000
200 2011 15 9000
300 2009 14 6000
解决:
select a.product_id
,a.first_year
,a.quantity
,a.price
from (
select a.product_id
,a.year as first_year
,a.quantity
,a.price
,row_number() over(partition by a.product_id order by year) as rn ---根据product_id进行分组并按照year进行排序
from sales_table a
left join product_table b
on a.product_id = b.product_id
)a
where rn = 1
;
结果:
product_id first_year quantity price
100 2008 10 5000
200 2011 15 9000
300 2009 14 6000
备注:建表和数据
create table sales_table(sale_id int,product_id int,year int,quantity int,price int);
create table product_table(product_id int,product_name varchar(30));
insert into sales_table values(1,100,2008,10,5000);
insert into sales_table values(2,100,2009,12,5000);
insert into sales_table values(7,200,2011,15,9000);
insert into sales_table values(9,300,2009,14,6000);
insert into sales_table values(11,300,2011,18,6500);
insert into product_table values(100,'Nokia');
insert into product_table values(200,'Apple');
insert into product_table values(300,'Samsung');
上一篇: day 01
下一篇: 找出大于200的最小的质数