显示所有结果的多列求和

fd3cxomn  于 2021-06-21  发布在  Mysql
关注(0)|答案(3)|浏览(276)

这个问题在这里已经有答案了

sql向mysql结果集添加摘要行(4个答案)
两年前关门了。
是否可以合计两列,但仍然显示所有结果?目前,如果我对select语句中的一列求和(例如sum(sales\u amount)),它只显示一行结果

SALES_ID    EMPLOYEE_ID PRODUCT_ID  SALES_AMOUNT    QUANTITY    DATE    
1           123148      4578947          80            1    01/01/2018
2           123148      5124578          80            1    01/01/2018

我想保留上面显示的两个结果,但是在sales\u amount下创建了一个额外的行,显示总共160个,数量为2。

s71maibg

s71maibg1#

选择sales\u id、employee\u id、product\u id、sales\u amount、quantity、date、(sales\u amount*quantity)作为total from(表名)
如果使用此查询,则金额将乘以每行的数量并显示在新列中

eqfvzcg8

eqfvzcg82#

在这种情况下最简单的方法可能是 union all :

select SALES_ID, EMPLOYEE_ID, PRODUCT_ID, SALES_AMOUNT, QUANTITY, DATE  
from t
union all
select NULL, NULL, NULL, SUM(sales_amount), sum(quantity), date
from t
group by date;

如果您的数据是聚合查询的结果,那么 rollup 是合适的。

zzlelutf

zzlelutf3#

这可以说是糟糕的sql,因为最后一行的语义与其他行不同(行和列在逻辑上应该可以互换。)也就是说,在我写这篇文章时,我看到@gordon linoff刚刚给出了我要给出的答案。尽管如此,我还是认为这样的聚合应该是分开的。

相关问题