Ну, во-первых, ваша разметка рассчитывается как ( Продажа / Стоимость ).
В вашем случае 14.99 / 9.99 = 1.5005005005 ....
Если вы хотите проверить avg, это должно быть что-то вроде
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)