SQL子查詢語法 產品銷售分析III Leetcode #1070

更新於 發佈於 閱讀時間約 7 分鐘

題目敘述

題目會給我們兩張資料表,第一張是Sales,第二張是Product。

第一張是Sales表格,裡面分別有sale_id、 product_id、year、quantity、price等欄位。其中(sale_id、 product_id)做為複合主鍵Primary key

Table: Sales

+-------------+-------+
| Column Name | Type |
+-------------+-------+
| sale_id | int |
| product_id | int |
| year | int |
| quantity | int |
| price | int |
+-------------+-------+
(sale_id, year) is the primary key (combination of columns with unique values) of this table.
product_id is a foreign key (reference column) to Product table.
Each row of this table shows a sale on the product product_id in a certain year.
Note that the price is per unit.


第二張是Product表格,裡面分別有product_id 、 product_name 等欄位。其中 product_id做為主鍵Primary key

Table: Product

+--------------+---------+
| Column Name | Type |
+--------------+---------+
| product_id | int |
| product_name | varchar |
+--------------+---------+
product_id is the primary key (column with unique values) of this table.
Each row of this table indicates the product name of each product.


要求我們,以第一次銷售出去的年份為基準,
列出銷售出去的 product_idyearquantity, 和 price。


輸出的順序不拘


詳細的題目可在這裡看到


測試範例

Example 1:

Input: 
Sales table:
+---------+------------+------+----------+-------+
| sale_id | product_id | year | quantity | price |
+---------+------------+------+----------+-------+
| 1 | 100 | 2008 | 10 | 5000 |
| 2 | 100 | 2009 | 12 | 5000 |
| 7 | 200 | 2011 | 15 | 9000 |
+---------+------------+------+----------+-------+

Product table:
+------------+--------------+
| product_id | product_name |
+------------+--------------+
| 100 | Nokia |
| 200 | Apple |
| 300 | Samsung |
+------------+--------------+

Output:
+------------+------------+----------+-------+
| product_id | first_year | quantity | price |
+------------+------------+----------+-------+
| 100 | 2008 | 10 | 5000 |
| 200 | 2011 | 15 | 9000 |
+------------+------------+----------+-------+

演算法

考點主要落在抓取"第一次銷售出去的年份",這邊可以使用subquery,SQL查詢裡面再包著另一個(SQL)子查詢的技巧,找出來。

一般常見的通則樣貌:

SELECT ...欄位 FROM ...表格

WHERE ...欄位 ... 做條件判斷(

包著另一個SQL 查詢語法

)

Subquery教學


每個產品的第一次銷售出去的年分,用SQL語法來寫,其實就是

 SELECT product_id, MIN(year) as year
 FROM Sales
 GROUP BY product_id

其中 MIN(year)就對應到題目所要求的"第一次銷售出去的年分"。

GROUP BY product_id 則是由商品編號product_id去做分群。


程式碼

# Write your MySQL query statement below
SELECT product_id, year AS first_year, quantity, price
FROM Sales
# Select the product id, year, quantity, and price for the first year of every product sold.
WHERE (product_id, year) IN (
 SELECT product_id, MIN(year) as year
 FROM Sales
 GROUP BY product_id
);

關鍵知識點

掌握子查詢的語法與架構

SELECT ...欄位 FROM ...表格

WHERE ...欄位 ... 做條件判斷(

包著另一個SQL 查詢語法

)


Reference:

[1] MySQL by subquery on composite fields - Product Sales Analysis III - LeetCode

留言
avatar-img
留言分享你的想法!
avatar-img
小松鼠的演算法樂園
95會員
427內容數
由有業界實戰經驗的演算法工程師, 手把手教你建立解題的框架, 一步步寫出高效、清晰易懂的解題答案。 著重在讓讀者啟發思考、理解演算法,熟悉常見的演算法模板。 深入淺出地介紹題目背後所使用的演算法意義,融會貫通演算法與資料結構的應用。 在幾個經典的題目融入一道題目的多種解法,或者同一招解不同的題目,擴展廣度,並加深印象。
2024/01/01
題目敘述 題目會給我們兩張資料表,第一張是Sales,第二張是Product。 第一張是Sales表格,裡面分別有sale_id、 product_id、year、quantity、price等欄位。其中(sale_id、 product_id)做為複合主鍵Primary key Table:
Thumbnail
2024/01/01
題目敘述 題目會給我們兩張資料表,第一張是Sales,第二張是Product。 第一張是Sales表格,裡面分別有sale_id、 product_id、year、quantity、price等欄位。其中(sale_id、 product_id)做為複合主鍵Primary key Table:
Thumbnail
2023/12/29
題目敘述 題目會給我們兩張資料表。 第一張資料表是Employees 裡面分別有id、name等欄位。這張資料表的id是主鍵。 第二張資料表是EmployeeUNI 裡面分別有id、unique_id等欄位。 題目要求我們列出每位員工對應到的Unique ID
Thumbnail
2023/12/29
題目敘述 題目會給我們兩張資料表。 第一張資料表是Employees 裡面分別有id、name等欄位。這張資料表的id是主鍵。 第二張資料表是EmployeeUNI 裡面分別有id、unique_id等欄位。 題目要求我們列出每位員工對應到的Unique ID
Thumbnail
2023/12/26
題目敘述 題目會給我們一張Tweets資料表。裡面分別有tweet_id、content等欄位。這張資料表的tweet_id是主鍵Primary key。 題目要求我們列出所有非法的推文。輸出順序不拘。 非法推文的定義,推文內容的長度超過15個字元。
Thumbnail
2023/12/26
題目敘述 題目會給我們一張Tweets資料表。裡面分別有tweet_id、content等欄位。這張資料表的tweet_id是主鍵Primary key。 題目要求我們列出所有非法的推文。輸出順序不拘。 非法推文的定義,推文內容的長度超過15個字元。
Thumbnail
看更多
你可能也想看
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
重點摘要: 6 月繼續維持基準利率不變,強調維持高利率主因為關稅 點陣圖表現略為鷹派,收斂 2026、2027 年降息預期 SEP 連續 2 季下修 GDP、上修通膨預測值 --- 1.繼續維持利率不變,強調需要維持高利率是因為關稅: 聯準會 (Fed) 召開 6 月利率會議
Thumbnail
重點摘要: 6 月繼續維持基準利率不變,強調維持高利率主因為關稅 點陣圖表現略為鷹派,收斂 2026、2027 年降息預期 SEP 連續 2 季下修 GDP、上修通膨預測值 --- 1.繼續維持利率不變,強調需要維持高利率是因為關稅: 聯準會 (Fed) 召開 6 月利率會議
Thumbnail
BigQuery M是 BigQuery 中的一項功能,數據分析師可以使用SQL語句創建、訓練、評估和預測機器學習模型。 在這次實作將使用一個電子商務(Google 商品商店)數據集來運行一些典型的查詢和模型訓練和預測,以讓企業更了解其客戶的購買習慣。
Thumbnail
BigQuery M是 BigQuery 中的一項功能,數據分析師可以使用SQL語句創建、訓練、評估和預測機器學習模型。 在這次實作將使用一個電子商務(Google 商品商店)數據集來運行一些典型的查詢和模型訓練和預測,以讓企業更了解其客戶的購買習慣。
Thumbnail
題目敘述 題目會給我們一張Products資料表。裡面分別有product_id、new_price、change_date等欄位。其中(product_id, change_date)是這張資料表的複合主鍵Primary key。 所有商品預設都是10元。之後若有更新,則以新價格為主。 要求
Thumbnail
題目敘述 題目會給我們一張Products資料表。裡面分別有product_id、new_price、change_date等欄位。其中(product_id, change_date)是這張資料表的複合主鍵Primary key。 所有商品預設都是10元。之後若有更新,則以新價格為主。 要求
Thumbnail
題目會給我們兩張資料表。 第一張是Customer資料表,裡面分別有customer_id 、product_key 等欄位。其中product_key 是這張資料表的外鍵foreign key,關連到第二張Product資料表。 題目還特別提醒,這張資料表可能包含重複的data row
Thumbnail
題目會給我們兩張資料表。 第一張是Customer資料表,裡面分別有customer_id 、product_key 等欄位。其中product_key 是這張資料表的外鍵foreign key,關連到第二張Product資料表。 題目還特別提醒,這張資料表可能包含重複的data row
Thumbnail
題目敘述 題目會給我們兩張資料表,第一張是Sales,第二張是Product。 第一張是Sales表格,裡面分別有sale_id、 product_id、year、quantity、price等欄位。其中(sale_id、 product_id)做為複合主鍵Primary key
Thumbnail
題目敘述 題目會給我們兩張資料表,第一張是Sales,第二張是Product。 第一張是Sales表格,裡面分別有sale_id、 product_id、year、quantity、price等欄位。其中(sale_id、 product_id)做為複合主鍵Primary key
Thumbnail
產品履歷 產品履歷是指一個產品從設計、生產、銷售到售後服務的所有資料。它是產品管理的重要工具,可以幫助企業提高產品品質、分析市場表現、提供售後服務。 產品履歷通常包括以下內容: 商品編號:是產品的唯一識別碼,用於追蹤產品的所有流程。 創意編號:是產品的創意來源,相關的圖稿、文字、圖像等。
Thumbnail
產品履歷 產品履歷是指一個產品從設計、生產、銷售到售後服務的所有資料。它是產品管理的重要工具,可以幫助企業提高產品品質、分析市場表現、提供售後服務。 產品履歷通常包括以下內容: 商品編號:是產品的唯一識別碼,用於追蹤產品的所有流程。 創意編號:是產品的創意來源,相關的圖稿、文字、圖像等。
Thumbnail
有兩張資料表格,第一張是顧客資料表,第二張是訂單資料表。請找出所有顧客資料,不管這位顧客有沒有訂購過商品。請列出名字、姓氏、居住城市、訂購明細。注意:可能會有重複的資料點,因為一位顧客可以重複訂購同一件商品。最後依照顧客名字、訂購明細遞增排序。
Thumbnail
有兩張資料表格,第一張是顧客資料表,第二張是訂單資料表。請找出所有顧客資料,不管這位顧客有沒有訂購過商品。請列出名字、姓氏、居住城市、訂購明細。注意:可能會有重複的資料點,因為一位顧客可以重複訂購同一件商品。最後依照顧客名字、訂購明細遞增排序。
Thumbnail
有兩張資料表格,第一張是顧客資料,第二張是訂單資料。請找出名字叫Jill和Eva的客戶資料,並其對應的訂單日期、明細、金額,最後依照顧客號碼由小至大排序。
Thumbnail
有兩張資料表格,第一張是顧客資料,第二張是訂單資料。請找出名字叫Jill和Eva的客戶資料,並其對應的訂單日期、明細、金額,最後依照顧客號碼由小至大排序。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News