我在使用此 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] 删除。
我来说两句