我的问题是检索一家以高于平均市场价格出售每件商品的商店;
SELECT SHOP_NAME, Trade_Name
FROM SELL_ITEM f
WHERE PRICE >
(SELECT
AVG(PRICE)
FROM SELL_ITEM s
WHERE f.Trade_Name = s.Trade_Name
GROUP BY TRADE_NAME);
此查询向我返回所有商店销售的商品 > 高于平均市场价格的商品,但我如何过滤掉那些不适合每个商品的商品?
最佳答案
已编辑...(第一次错过了细微差别)
SELECT shop_name FROM
(
SELECT shop_name, MIN(case when f.price > a.avg_price then 1 else 0 end) AS is_always_higher_than_avg
FROM SELL_ITEM f
INNER JOIN
(
SELECT avg(price) AS avg_price, trade_name
FROM sell_item
GROUP BY trade_name
) a
ON f.trade_name = a.trade_name
WHERE f.price > a.avg_price
GROUP BY shop_name
) b
WHERE is_always_higher_than_avg = 1
关于mysql - SQL 子查询问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9857666/