(1) Таблица (SQL Fiddle ):
CREATE TABLE Sales (
Product Text,
Sales_Monetary VARCHAR(255),
Returns_Monetary VARCHAR(255)
);
INSERT INTO Sales
(Product, Sales_Monetary, Returns_Monetary)
VALUES
("Product A", "500", "300"),
("Product A", "200", "130"),
("Product A", "600", "0"),
("Product A", "900", "540"),
("Product B", "150", "70"),
("Product B", "480", "0"),
("Product B", "220", "0"),
("Product B", "300", "0"),
("Product B", "890", "670"),
("Product C", "360", "0"),
("Product C", "740", "530");
(2) Желаемый результат:
Sold_Items Returned_Items Return_Rate_Items
Product A 4 3 0.75
Product B 5 2 0.4
Product C 2 1 0.5
Я хочу получить Return Rate
на основе items
из приведенной выше таблицы примеров.
Поэтому я хочу использовать count
на Sales_Monetary
и Returns_Monetary
.
Однако, когда я делаю это, учитываются также продукты с возвратом 0
.
Для решения этой проблемы я поставил WHERE Returns_Monetary > 0
.
К сожалению, с этим условием Sales_Monetary
также не учитываются.
Select
Product,
count(Sales_Monetary) AS Sold_Items
count(Returns_Monetary) AS Returned_Items,
count(Returns_Monetary) / count(Sales_Monetary) AS Return_Rate_Items
FROM Sales
WHERE Returns_Monetary > 0
GROUP BY 1;
Что мне нужно изменить в моем запросе, чтобы он работал?