我遇到了一個問題。我有兩個表:一個是產品和員工在倉庫檢查的日期(date_checked),另一個是銷售資料,如你所見:
PRODUCTS
date_checked | product_name | category | product_id
_____________________________________________________________________
0 2021-01-01 |電視 |娛樂 | 100
1 20210103 |筆記本電腦 |商業 | 110
SALES
sale_date | product_name | category | product_id
_____________________________________________________________________
0 2021-01-01 |電視 |娛樂 | 100
1 2021-01-01 |筆記本電腦 |商務 | 110
2 2021-01-01 |電視 |娛樂 | 100
3 2021-01-01 |筆記本電腦 |商務 | 110
4 2021-01-01 |電視 |娛樂 | 100
5 20210103 |筆記本 |業務 | 110
6 20210103 |電視 |娛樂 | 100
7 20210103 |筆記本 |業務 | 110
7 20210103 |筆記本電腦 |商業 | 110
我的目標是創建一個新的表,其中包含產品表的所有資料,加上在date_checked中銷售的產品數量。例如:電視產品在1月1日被檢查,在同一天售出了3臺電視。筆記本電腦在1月3日被檢查過,當天賣出了3臺筆記本電腦,你可以在這里看到:
。
SALES_AT_CHECK_DAY
date_checked | product_name | category | product_id | sales
_____________________________________________________________________________
0 2021-01-01 | tv |娛樂 | 100 | 3
1 20210103 |筆記本電腦|業務 | 110 | 3
我知道我需要在這里使用一個連接,但我就是無法計算在某一天售出了多少產品。你們能幫助我嗎?
非常感謝你們。
非常感謝?
uj5u.com熱心網友回復:
首先,你似乎有一個糟糕的資料模型,因為你在兩個表之間重復列。 你應該只有sales中的主鍵,然后再去查找其他資訊。
select p.date_checked, s.product_name, s.category, s.duct_id,
count(*) as sales
from sales s join
產品 p
on s.product_id = p.product_id and
s.s.sale_date = p.date_checked
group by p.date_checked, s.product_name, s.category, s.product_id。
uj5u.com熱心網友回復:
- 首先加入資料
- Count()將根據提供的聚合計算行數。在我們的例子中,它是整個產品列,即products. 。
- 在group by中指定這些列 。
span class="hljs-keyword">select
產品。*。
count(*) as sales
from sales
inner join products
on sales.product_id = products.product_id
and sales.sale_date = products.date_checked
group by
products.date_checked,
products.product_name,
products.category,
products.product_id
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/320166.html
標籤:
