我的问题是找回以超过平均市场价格出售每件商品的商店;
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);
此查询返回所有商店销售商品>比平均市场价格,但我怎样才能过滤出不适用于每件商品的价格?
答案 0 :(得分:1)
编辑...(第一次错过了细微差别)
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