汇总显示所有结果的多列

时间:2018-04-16 21:20:16

标签: mysql sql sum

是否可以总计两列,但是仍然显示所有结果?目前,如果我对select语句中的一列进行求和(例如sum(sales_amount),则只显示1行结果

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_amount下显示总数为160,数量为2。

3 个答案:

答案 0 :(得分:1)

这可以说是糟糕的SQL,因为最后一行的语义与其他行的语义不同。 (行和列应该在逻辑上可以互换。)这就是说,正如我写的那样,我看到@ Gordon-Linoff刚刚给出了我要给出的答案。不过,我认为这种聚合应该是分开的。

答案 1 :(得分:0)

在这种情况下,最简单的方法可能是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是合适的。

答案 2 :(得分:0)

选择SALES_ID,EMPLOYEE_ID,PRODUCT_ID,SALES_AMOUNT,QUANTITY,DATE, (SALES_AMOUNT * QUANTITY)总计(您的表名)

如果您使用此查询,则金额将乘以每行的数量并显示在新列中