在python或c++中使用sql根据输入数据输出输出示例

在python或c++中使用sql根据输入数据输出输出示例,python,c++,mysql,sql,Python,C++,Mysql,Sql,问题如下,我需要输入可以保存到数据库,或csv文件、excel文件等。我尝试用MySQL解决问题,因为同一订单可能有多个产品,它们会分支。而同一产品不同订单的情况也不一样,这给我带来了很大的挑战。如果一位伟大的上帝能帮助我,非常感谢你 input: Orderid Itemid Quantity 001 a1 1 001 a2 1 002 a1 1 003 a1 1 00

问题如下,我需要输入可以保存到数据库,或csv文件、excel文件等。我尝试用MySQL解决问题,因为同一订单可能有多个产品,它们会分支。而同一产品不同订单的情况也不一样,这给我带来了很大的挑战。如果一位伟大的上帝能帮助我,非常感谢你

input:

Orderid   Itemid    Quantity
001         a1       1
001         a2       1 
002         a1       1
003         a1       1
003         a2       1 
004         a1       1
005         a1       3 
006         a2       1    
007         a1       1 
008         a1       1 

output:

ordersum  percent   Cumulative   itemdetail
4        50.00%    50.00%      a1[1]
2        25.00%    75.00%      a1[1]a2[1]   
1        12.50%    87.50%      a1[3]
1        12.50%    100.00%     a2[1]

我已经写了一个下午了。统计结果不太令人满意。请注意,我描述的问题字段与原始表字段不同。我的想法如下:

SET @csum: = 0;
select order volume, shop proportion, concat (round ((@ csum: = @csum + shop proportion), 2), '', '%') cumulative proportion, shop name
from
(select t1.store name, t1.order quantity, concat (round (t1.order quantity / t2.ordersum * 100,2), '', '%')
from
(select shop shop name, count (distinct (order number)) order quantity
from order20190801
group by shop
order by count (distinct (order number)) desc) t1,
(select count (distinct (order number)) ordersum
from order20190801) t2) t3
5.8秒左右有点长 设置@csum:=0; 选择订单量, 合流的订单量 / 订单总量* 100 ,5,,'%' 订单占比, concatround@csum:=@csum+concatrond订单量 / 订单总量* 100,5,,“%”,5,,“%”作为累计占比 , 订单明细 从…起 选择计数订单明细 订单量,订单明细 从…起 选择订单编号,组_CONCAT商家编码,'|',货品数量 订单明细 来自订单20190801 分组订单编号 t1 分组订单明细 点菜订单明细 描述 t2,选择countdistinct订单编号 订单总量 来自订单20190801 t3
10.437秒!!!欢迎访问stackoverflow.com。请花些时间阅读,特别是命名和。也请和。最后请阅读。我已经写了一个下午了。统计结果不太令人满意。请注意,我描述的问题字段与原始表字段不同。我的想法如下: