首页 > 解决方案 > 如何使用运算符和 AVG() 找出属性值大于所有属性平均值的元组?

问题描述

我有一张名为Parts的表。

+-------------------+---------------+-------------------+---------------+-------------------+
| pcode varchar(10) | weight int    | color varchar(10) | cost int      | sellingprice int  |
+-------------------+---------------+-------------------+---------------+-------------------+
| '1'               | 10            | 'Pink'            | 100           | 150               |
| '2'               | 20            | 'White'           | 200           | 250               |
| '3'               | 30            | 'Green'           | 300           | 350               |
| '4'               | 40            | 'Blue'            | 400           | 450               |
| '5'               | 50            | 'Red'             | 500           | 550               |
+-------------------+---------------+-------------------+---------------+-------------------+

我需要从此表中找到成本 > 平均成本的部分的 pcode。*

我试过这个:

select pcode 
from Part 
where cost > avg(cost) 
between 100 and 500;

标签: mysqlsql

解决方案


尝试扩展更多,它工作。

列成本的平均值为 -

(select avg(cost) 
 from Part)

根据问题的要求,我需要找到成本高于列平均值的元组。

这是通过简单地将平均值与运算符一起放置来获得的。

select pcode 
from Part 
where cost > (select avg(cost) from Part)

推荐阅读