1070. 产品销售分析 III

编程入门 行业动态 更新时间:2024-10-19 04:25:47

1070. <a href=https://www.elefans.com/category/jswz/34/1706520.html style=产品销售分析 III"/>

1070. 产品销售分析 III

SQL架构

销售表 Sales

+-------------+-------+
| Column Name | Type  |
+-------------+-------+
| sale_id     | int   |
| product_id  | int   |
| year        | int   |
| quantity    | int   |
| price       | int   |
+-------------+-------+
(sale_id, year) 是这张表的主键。
product_id 是产品表的外键。
这张表的每一行都表示:编号 product_id 的产品在某一年的销售额。
请注意,价格是按每单位计的。

产品表 Product

+--------------+---------+
| Column Name  | Type    |
+--------------+---------+
| product_id   | int     |
| product_name | varchar |
+--------------+---------+
product_id 是这张表的主键。
这张表的每一行都标识:每个产品的 id 和 产品名称。

编写一个 SQL 查询,选出每个销售产品 第一年 销售的 产品 id年份数量 和 价格

结果表中的条目可以按 任意顺序 排列。

查询结果格式如下例所示:

示例 1:

输入:
Sales 表:
+---------+------------+------+----------+-------+
| sale_id | product_id | year | quantity | price |
+---------+------------+------+----------+-------+ 
| 1       | 100        | 2008 | 10       | 5000  |
| 2       | 100        | 2009 | 12       | 5000  |
| 7       | 200        | 2011 | 15       | 9000  |
+---------+------------+------+----------+-------+
Product 表:
+------------+--------------+
| product_id | product_name |
+------------+--------------+
| 100        | Nokia        |
| 200        | Apple        |
| 300        | Samsung      |
+------------+--------------+
输出:
+------------+------------+----------+-------+
| product_id | first_year | quantity | price |
+------------+------------+----------+-------+ 
| 100        | 2008       | 10       | 5000  |
| 200        | 2011       | 15       | 9000  |
+------------+------------+----------+-------+
select
s1.product_id,s1.first_year,s1.quantity,s1.price
from
(select
product_id, year first_year,quantity,price
from
Sales) s1
left join
(select
product_id,min(year) my
from
Sales
group by 
product_id) s2
on s1.product_id = s2.product_id where s1.first_year = s2.my
select
ss1.product_id,ss1.year first_year,ss1.quantity,ss1.price
from
(
select
*,dense_rank() over(partition by product_id order by year) dr
from
Sales
) ss1
where ss1.dr = 1
selectproduct_id, year first_year, quantity, price
from Sales
where (product_id,year) in ( select product_id,min(year) from sales group by product_id )

返回该题

更多推荐

1070. 产品销售分析 III

本文发布于:2024-02-26 19:33:33,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1703645.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:产品销售   III

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!