题目
使用products_tbl表,如下图:1 Field I Type I Null I Key I Default I Extra-|||---------+------ -------+-------+-|||-1 prod_id I varchar (10 )I NO I PRI I NULL I-|||-1 prod_desc I varchar (40 ) I NO I I NULL I-|||-I cost decimal(66,2.)I NO l NULL I使用子查询编写一个SQL语句,列出所有价格高于全部产品平均价格的产品。
使用products_tbl表,如下图:

使用子查询编写一个SQL语句,列出所有价格高于全部产品平均价格的产品。
题目解答
答案
首先需要计算出全部产品的平均价格,然后使用子查询筛选出价格高于平均价格的产品。
SELECT * FROM products_tbl
WHERE cost > (SELECT AVG(cost) FROM products_tbl);
通过子查询 (SELECT AVG(cost) FROM products_tbl) 计算出全部产品的平均价格,然后外层查询筛选出价格高于这个平均价格的产品。
故答案为上述的 SQL 语句。通过上述语句可以实现列出所有价格高于全部产品平均价格的产品的需求。
解析
步骤 1:计算全部产品的平均价格
使用子查询 (SELECT AVG(cost) FROM products_tbl) 计算出全部产品的平均价格。
步骤 2:筛选出价格高于平均价格的产品
在主查询中使用 WHERE 子句,筛选出 cost 列的值大于子查询计算出的平均价格的产品。
使用子查询 (SELECT AVG(cost) FROM products_tbl) 计算出全部产品的平均价格。
步骤 2:筛选出价格高于平均价格的产品
在主查询中使用 WHERE 子句,筛选出 cost 列的值大于子查询计算出的平均价格的产品。