这背后的逻辑是我想从销售的产品中减去退回的产品。这样我就会销售一定数量的产品。子查询返回数值,但我不确定如何从这些子查询中获得差异。
SELECT COUNT(QUANTITY_ORDERED) FROM PRODUCTS
WHERE
(SELECT COUNT(QUANTITY_ORDERED) FROM PRODUCTS WHERE CATEGORY ='SOLD')-(SELECT COUNT(QUANTITY_ORDERED) FROM PRODUCTS WHERE CATEGORY='RETURNED')
答案 0 :(得分:0)
只需执行条件SUM()
而不是COUNT()
SELECT product_id,
SUM(CASE WHEN CATEGORY ='SOLD' THEN QUANTITY_ORDERED ELSE 0 END)
- SUM(CASE WHEN CATEGORY ='RETURNED' THEN QUANTITY_ORDERED ELSE 0 END) as total
FROM products
GROUP BY product_id
OR
SELECT product_id,
COUNT(CASE WHEN CATEGORY ='SOLD' THEN 0 END)
- COUNT(CASE WHEN CATEGORY ='RETURNED' THEN 0 END) as total
FROM products
GROUP BY product_id