2016-08-27 74 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