下面是兩張表。一件物品在不同時期以不同的價格出售。我需要計算該商品的平均銷售額。我需要找到一個最佳的作業查詢。我認為訣竅是將每個銷售日期與其 start_date 和 end_date 映射,并將數量乘以該時期各自的價格,然后使用公式總銷售額/總數量得出平均值。
CREATE TABLE sales(
item_id varchar(255) ,
start_date date ,
end_date date,
price int
) ;
insert into sales values
('mobile','2021-01-01','2021-01-05',500),
('mobile','2021-01-06','2021-01-09',400),
('mobile','2021-01-10','2021-01-15',900) ;
CREATE TABLE item(
sales_id int,
item_id varchar(255) ,
sales_date date ,
quatity int
) ;
insert into item values
(101,'mobile','2021-01-01',10),
(102,'mobile','2021-01-06',20),
(103,'mobile','2021-01-15',30) ;
uj5u.com熱心網友回復:
select item_id, sum(total_amount)/sum(quatity) avg_price from
(
select s.item_id, s.price, i.quatity, s.price * i.quatity as total_amount
from sales s, item i where i.item_id = s.item_id
and i.sales_date between s.start_date and s.end_date
) as A
group by item_id;

uj5u.com熱心網友回復:
請試試這個,
SELECT
i.item_id,avg(s.price*i.quatity) FROM
item I
LEFT JOIN
sales S
on
I.item_id=S.item_id
AND I.sales_date >=S.start_date AND I.sales_date<=S.end_date
group by i.item_id;
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/428246.html
下一篇:SQL中一對值之間的唯一覆寫
