我有一张看起来像这样的表:
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(单位)或使用max()的情况下将sum(量)添加到聚合列的度量单位?基本上所有分组中的商品都具有相同的度量单位,我正在寻找最优雅的查询。感谢。
答案 0 :(得分:0)
在您的情况下,您可以使用 MAX 或 MIN ,这对您的结果没有任何影响。
您也可以通过查询列unit
并在group by
子句中添加相同的函数来避免聚合函数MAX和MIN。
select name, cast(sum(quantity) as nvarchar) + ' ' + unit as total
from goods group by name, unit