mysql - SQL 子查询问题

标签 mysql sql tsql

我的问题是检索一家以高于平均市场价格出售每件商品的商店;

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/

相关文章:

SQL 使用 AND 在列中查找两个值

c# - 尽管数据已添加到数据库中,但 ExecuteScalar() 返回 null

php - Yii2 每月更新一次表

c# - 将浮点型转换为字符串

MySQL显示两个表中的列而不重复

sql - 在 MySQL 中查找下一个可用的 id

javascript - 返回 mysql 查询的结果。最终返回 undefined

php - Laravel 迁移无法在使用 MySQL RDS DB 的 LAMP AWS 实例中工作 --> SQLSTATE[HY000] [2002] 连接超时

mysql - SQL 查询 : Get the minimal element, 高于一个特定元素

sql-server - 如何在 MS Access 中查找 ADO 查询的结果