簡體   English   中英

如何向包含上一列百分比的select語句中添加額外的列

[英]How to add extra columns to a select statement that contain percentages of a previous column

我可以使用select語句生成這樣的表:

column1 total
-------------
Item A  360
Item B  440
Item C  180

這是我用來創建上表的SQL語句:

select column1, sum( order_total) as total
from report
group by column1;

如何修改我的SQL語句以在其中添加第3列和第4列,該列占總列的百分比? 百分比值基於列1中的值。 最后,我試圖創建一個看起來像這樣的表:

column1 total  percentage_a percentage_b
----------------------------------------
Item A  360    108          252
Item B  440    220          220
Item C  180    70           110

因此,在上表中,percent_a和percent_b列占總列的一定百分比。 如何修改我的SQL代碼,以使Item A行的拆分比例為30/70,Item B列的拆分比例為50/50。

謝謝你的幫助。 我是新手。

這樣的事情應該做到:

select 
    column1, 
    sum(order_total) as total,
    sum(order_total) * 0.7 as percent_70_30,
    sum(order_total) * 0.5 as percent_50_50
from 
    report
group by 
    column1;

抱歉,這個問題的措辭很差。 這就是我想要的:

select report.instituiton_name, sum( report.order_total ) 
as instituton_totals, t1.betteru_percentage, t2.cp_percentage
from bi_all_sales_report report
left join (
    select instituiton_name, ( 
    CASE  
        WHEN instituiton_name = 'abc' THEN sum( order_total ) * 0.30 
        ELSE sum( order_total ) * 0.50
    END ) as betteru_percentage
    from bi_all_sales_report
    group by instituiton_name
) t1 on t1.instituiton_name = report.instituiton_name
left join (
    select instituiton_name, ( 
    CASE  
        WHEN instituiton_name = 'abc' THEN sum( order_total ) * 0.70 
        ELSE sum( order_total ) * 0.50
    END ) as cp_percentage
    from bi_all_sales_report
    group by instituiton_name
) t2 on t2.instituiton_name = report.instituiton_name

group by instituiton_name

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM