2016-08-27 69 views
1

table1的结构和样本数据MySQL的SUM和GROUP BY从AS柱

+----+-------------+----------+------+-------+ 
| ID | DESCRIPTION | QUANTITY | EACH | PRICE | 
+----+-------------+----------+------+-------+ 
| 1 | Product 1 |  1 | 12 | 1*12 | 
| 2 | Product 2 |  2 | 3 | 2* 3 | 
| 3 | Prodcut 3 | NULL | 3 |  | 
| 4 | Product 1 |  2 | 10 | 2*10 | 
| 5 | Product 3 | NULL | 7 |  | 
+----+-------------+----------+------+-------+ 

MySQL查询:

SELECT 
    DESCRIPTION, 
    QUANTITY, 
    EACH, 
    COALESCE(QUANTITY, 1) * EACH AS PRICE 
FROM table1 
GROUP BY DESCRIPTION 

我如何才能让SUMPRICE柱和GROUP BY描述列?我不想使用UPDATE,因为我无法更改table1中的值。

回答

2

那么为什么你不能在你的选择列表中添加SUM(COALESCE(QUANTITY, 1) * EACH) AS PRICETOTAL

+0

也许调整group by子句一点也使其符合SQL标准... – Shadow

+0

感谢您的回答 – ster

0
SELECT 
    DESCRIPTION, 
    SUM(COALESCE(QUANTITY,1)*each) as 'Price' 
FROM table1 
GROUP BY DESCRIPTION 


returns 
DESCRIPTION Price 
Product 1 32 
Product 2 6 
Product 3 10 
+0

虽然这个代码片断可以解决的问题,[包括解释] (//meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)确实有助于提高你的帖子的质量。请记住,您将来会为读者回答问题,而这些人可能不知道您的代码建议的原因。也请尽量不要使用解释性注释来挤占代码,因为这会降低代码和解释的可读性! – FrankerZ

+0

谢谢@FrankerZ将更新与解释。 – RSSM

+0

谢谢你的回答 – ster