首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >具有JOIN和Group By Plus Average的SQL

具有JOIN和Group By Plus Average的SQL
EN

Stack Overflow用户
提问于 2017-07-19 00:56:51
回答 1查看 36关注 0票数 1

我希望产生我的商店效率的结果。要做到这一点,我需要从3个不同的表JOMAST,JODRTG和INRTGS的数据。因此,我提出了以下查询:

代码语言:javascript
运行
复制
select jomast.fpartno AS 'Part Number',
JODRTG.foperno AS 'OP Number',
JODRTG.fopermemo As ' Description',
JODRTG.fpro_id AS 'Work Center',
jodrtg.fprod_tim AS ' Act. Production Time',
inrtgs.fuprodtime AS 'Est. Prodution Time'
from jodrtg
Left join jomast on jodrtg.fjobno = jomast.fjobno
left join inrtgs on jomast.fpartno = inrtgs.fpartno

现在我需要做的是计算出法案的平均值。生产时间。并将其精确到包含该部件的所有运算号的部件号。

当我尝试Group By JOMAST.fpartno时,我得到了一个错误,它不能使用and outer列。如果我对工序编号进行分组,则每个部件的所有工序10都将被合并。这不是我们想要的结果。

谁能给我指个方向,我需要去实现我的结果?

EN

回答 1

Stack Overflow用户

发布于 2017-07-19 01:00:26

听起来您想让多个行都显示相同的jodrtg.fpartno,都显示不同的jodrtg.fprod_tim,但都显示jodrtg.fprod_tim的平均值(相同),是吗?

如果是,则添加:

代码语言:javascript
运行
复制
AVG(jodrtg.fprod_tim) OVER(PARTITION BY jodrtg.fpartno) as avg_for_all_fprod_tim

作为您选择的列列表中的一列。

有关更多信息,您可以google PARTITION BY,但可以将其视为对数据执行GROUP BY x,AVG(y) (或sum,max,诸如此类)的指令,然后将AVG放入x所在的每一行的行数据中。

从本质上讲,这与编写一个较小的(SELECT jodrtg.fpartno, avg(jodrtg.fprod_tim) as avg_for_all_frod_tim FROM blah GROUP BY jodrtg.fpartno)子查询,然后将其连接回主查询是相同的

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45172935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档