大神别路过啊,从订单中统计每个工位的效率的sql怎么写

夏湖悠 2017-10-09 11:14:20
有这么一张order表 字段 ID ,A工位处理人,B工位处理人,利润
现在要统计A工位每人处理个订单数~利润,B工位每人处理个订单数~利润,
每个人可能出现在A工位也可能在B工位,也可能AB两个工位都是一个人处理的
...全文
337 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
imcmuc 2017-10-19
  • 打赏
  • 举报
回复
SELECT COUNT(1) SL OVER(PARTITION BY A工位处理人) AGSL,
       SUM(利润) OVER(PARTITION BY A工位处理人) AGSUM,
       COUNT(1) SL OVER(PARTITION BY B工位处理人) BGSL,
       SUM(利润) OVER(PARTITION BY B工位处理人) BGSUM
  FROM TABLE
alex259 2017-10-12
  • 打赏
  • 举报
回复
开窗函数不用group by的,你把表结构发出来,我可以模拟写一下试试
引用 5 楼 aa5065029 的回复:
@alex259 谢谢老铁 结果格式 应该是 名字 A工位的单数 A工位处理过的这些单的利润和 ,B工位单数 B工位处理过的这些单的利润和 能再提示下怎么写吗, 意思就是要对名字group by 两次分别来统计A和B工位的数据 ,两次的结果再按照名字一样的拼在一起
alex259 2017-10-10
  • 打赏
  • 举报
回复
感觉开窗函数才是你的归属,可以自己百度搜索一下,count(1)over(partition by xx order by xx) 和其他的聚合函数的开窗函数的用法,对你这个统计会有很大的帮助
夏湖悠 2017-10-10
  • 打赏
  • 举报
回复
@qq646748739 order_ID A工位处理人 ,B工位处理人 ,利润 4个字段 要统计A和B工位处理人的效能 ,结果格式 应该是 名字 A工位的单数 A工位处理过的这些单的利润和 ,B工位单数 B工位处理过的这些单的利润 意思就是要对名字group by 两次分别来统计A和B工位的数据 ,两次的结果再按照名字一样的拼在一起
夏湖悠 2017-10-10
  • 打赏
  • 举报
回复
@qq_38206656 不对啊 ,老铁 意思就是要对名字group by 两次分别来统计A和B工位的数据 ,两次的结果再按照名字一样的拼在一起
夏湖悠 2017-10-10
  • 打赏
  • 举报
回复
@alex259 谢谢老铁 结果格式 应该是 名字 A工位的单数 A工位处理过的这些单的利润和 ,B工位单数 B工位处理过的这些单的利润和 能再提示下怎么写吗, 意思就是要对名字group by 两次分别来统计A和B工位的数据 ,两次的结果再按照名字一样的拼在一起
夏湖悠 2017-10-09
  • 打赏
  • 举报
回复
等于要count(A) sum(利润) group by A 和 count(B) sum(利润) group by B 的数据拼起来,
imcmuc 2017-10-09
  • 打赏
  • 举报
回复
SELECT 'A工位处理人',A工位处理人,COUNT(1) SL,SUM(利润) FROM TABLE
UNION ALL
SELECT 'B工位处理人',B工位处理人,COUNT(1) SL,SUM(利润) FROM TABLE
碧水幽幽泉 2017-10-09
  • 打赏
  • 举报
回复
如何区分每个人? 字段是什么?

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧