首先,您的加价计算为 (Selling/Cost)。
在你的情况下 14.99/9.99=1.5005005005....
如果你想检查平均值,它应该是这样的
SELECT CostPrice, AVG(SellingPrice/CostPrice)
FROM Table
GROUP BY CostPrice
除非您使用产品类别的价格范围,否则这没有多大意义。
某些产品的加价可能比其他产品高,但售价仍相同。您可能需要稍微不同的处理方式。
要使用您的范围,我可能会使用类似的东西
DECLARE @Range INT
SET @Range = 5
SELECT CEILING(CostPrice / @Range) * @Range,
AVG(SellingPrice / CostPrice)
FROM @Table
GROUP BY CEILING(CostPrice / @Range)
或者创建一个包含您的价格范围的@table,并按这些范围分组。
类似
DECLARE @Table TABLE(
CostPrice FLOAT,
SellingPRice FLOAT
)
INSERT INTO @Table SELECT 0.99, 14.99
INSERT INTO @Table SELECT 4.99, 9.99
INSERT INTO @Table SELECT 9.99, 14.99
INSERT INTO @Table SELECT 19.99, 9.99
DECLARE @Ranges TABLE(
StartVal FLOAT,
EndVal FLOAT
)
INSERT INTO @Ranges SELECT 0, 5
INSERT INTO @Ranges SELECT 5, 10
INSERT INTO @Ranges SELECT 10, 15
INSERT INTO @Ranges SELECT 15, NULL
SELECT ISNULL(r.EndVal, r.StartVal),
AVG(t.SellingPRice / t.CostPrice)
FROM @Ranges r LEFT JOIN
@Table t ON t.CostPrice > r.StartVal AND (t.CostPrice <= r.EndVal OR r.EndVal IS NULL)
GROUP BY ISNULL(r.EndVal, r.StartVal)