例如,假设我有这个表销售(ID,类型,价格)。
现在,对于每个条目,我必须返回其类型销售的比例。
例如,如果我从销售自行车的总收入是1000,而我卖了100双自行车,那么它的比例将为0.1。
如何通过SQL实现它? 谢谢!
答案 0 :(得分:1)
设置:
create table sales (
ID numeric,
type varchar(20),
price decimal
);
insert into sales values (1,'bike','900.00');
insert into sales values (2,'bike','100.00');
查询:
select s1.ID, s1.type, s1.price, (s1.price/s2.sum_price) as proportion
from sales s1
inner join (
select type, sum(price) as sum_price
from sales
group by type
) s2
on s1.type = s2.type;
内部查询按类型获取所有总和。这是sum(col2) over (partition by col2)
的模拟,可以在某些数据库中使用,但在MySQL中不可用。