MySQL 选择查询:SUM() 行具有不同的值,来自另一列

我在使用此 SQL 选择查询时遇到了很多麻烦。我开始相信我需要制作某种临时表,但我可能错了。

我需要显示 P_CODE 标识的哪些产品的销量高于此表中的平均产品。我面临的问题是有多个条目具有相同的 P_CODE。

SELECT LINE.P_CODE FROM LINE
WHERE LINE.LINE_UNITS > (SELECT SUM(LINE.LINE_UNITS) FROM LINE)/(SELECT COUNT(DISTINCT LINE.P_CODE) FROM LINE);

这个选择查询使我接近所需的结果,但我实际上想运行以下命令:

SELECT LINE.P_CODE FROM LINE
WHERE (SELECT SUM(LINE.LINE_UNITS) FROM LINE GROUP BY LINE.P_CODE) > (SELECT SUM(LINE.LINE_UNITS) FROM LINE)/(SELECT COUNT(DISTINCT LINE.P_CODE) FROM LINE);

但我收到此错误

错误代码:1242。子查询返回多于 1 行

很抱歉,如果我的表格演示不佳,我也截取了它屏幕截图但是我包含它是为了帮助解释为什么我不能使用 AVG() 函数。


LINE_UNITS | P_CODE 1 | 13-Q2/P2 5 | 13-Q2/P2 2 | 13-Q2/P2 1 | 1546-QQ2 1 | 2232/QTY 1 | 2238/QPD 1 | 23109-HB 2 | 23109-HB 1 | 23109-HB 1 | 23109-HB 2 | 54778-2T 3 | 54778-2T 1 | 54778-2T 1 | 89-WRE-Q 12 | PVC23DRT 5 | PVC23DRT 3 | SM-18277 3 | WR3/TT3

普拉迪普

如果没有错,你正在寻找这样的东西

SELECT l.P_CODE
FROM   LINE l
GROUP  BY l.P_CODE
HAVING Sum(l.LINE_UNITS) > (SELECT Sum(LINE_UNITS) / Count(DISTINCT P_CODE)
                            FROM   LINE) 

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

MySQL 查询一列中具有相同值而另一列中具有不同值的行

在mysql中选择具有相同值的另一列的行

MySQL:如果另一列在联结表中具有两个确定的值,则从一列中选择不同的值

MySQL-如何从一列中查询具有不同值的不同列

MySQL选择具有相同ID的不同行,并在列中使用不同的值,并在另一列中排除特定的值

给定另一列,选择一列具有不同值的行

选择在一列中具有相同值而在另一列中具有不同值的行

具有日期范围选择的MySQL查询,但当另一列重复时,还需要获取一列的最大值

MYSQL:从一列中选择具有多个值的查询

在表的另一列中选择具有相同id但不同值的行

MYSQL-选择在1列中重复但在另一列中不同的所有行的计数

如何选择具有在一列中重复但在另一列中具有不同值的列值的行?

sql:使用单个查询在另一列中选择具有相同列值的行

Mysql - 如何查询一列的重复值但在不同的列中有不同的值?

mysql查询排序根据不同的列取决于另一列的值

MySQL查询:对另一列使用不同的列值求和

更好的查询以选择带有计数结果的聚合的最大值,并保留另一列MySQL?

mysql-根据不同表中另一列的最大值选择唯一列

如何在一列中选择具有相同值但在另一列中所有列必须彼此不同的行

当另一列具有匹配值时,选择一列中具有最大值的行

选择一个具有附加列的特定行,该列的值来自一个表中的另一列

MySQL-选择列值仅为0的行,按另一列分组?

改进对在另一列中具有特定值的不同值进行计数的查询

撇取摘要中,无法选择一列中具有0且另一列中的值不同于0的行

从数据框中选择在几列上具有相同值但在另一列上具有不同值的行

选择在列中具有相同值而在另一列中具有不同值的记录

如何从mysql的同一列中选择不同的值

以特定顺序在另一列中选择具有不同值的 ID

MySQL 在一个查询中同时选择 SUM 和同一列的一个特定行 - 最佳方式?