2011-04-01 40 views
0

我有一個表,看起來像這樣:SQL連接2分聚合列

 
Name | Quantity | Unit 
-------+-------------+---------- 
Water   10  Lt 
Water   5   Lt 
Water   3   Lt 
Snacks  20  Kg 
Snacks  15  Kg 
Beer   7   Lt 
Beer   12  Lt 
Pizza   1   Piece 
Pizza   2   Piece 
Pizza   5   Piece 

我需要得到這些結果:

 
Name | Quantity_Unit 
-------+------------------ 
Water   18 Lt 
Snacks  35 Kg 
Beer   19 Lt 
Pizza   8 Piece 

所以我需要通過產品選擇數量的總和,並添加測量單位在同一列中。這是很簡單的,這就是我要做的事:

 
select name, cast(sum(quantity) as nvarchar) + ' ' + max(unit) as total 
from goods group by name 

我的問題是如何添加度量單位來彙總柱總和(數量)不使用聚合功能,如最大值(單位)或使用MAX()這種情況很好嗎?基本上,所有分組中的商品都具有相同的度量單位,我正在尋找最優雅的查詢。謝謝。

回答

0

在你的情況,你可以使用MAXMIN,它不會讓你的結果有什麼不同。

您也可以通過查詢unit列並在group by子句中添加相同的語句來避免聚合函數MAX和MIN。

select name, cast(sum(quantity) as nvarchar) + ' ' + unit as total 
from goods group by name, unit