繁体   English   中英

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

[英]MySQL Select Query: SUM() rows with a distinct value, from another column

我在使用此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) 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM