SQL计算题,想得出A的进度

image.png

image.png

难点在于如何取到执行人的最新进度???

GUESS_ 发布于 2019-9-7 16:48
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共6回答
最佳回答
0
zsh331Lv8专家互助
发布于2019-9-8 00:44
SELECT
`事项`,
AVG(`进度`) AS `进度`
FROM
(
SELECT
`事项`,
`执行人`,
max(`反馈进度`) AS `进度`
FROM
TABNAME
GROUP BY
`事项`,
`执行人`
) t
GROUP BY
`事项`


最佳回答
0
浪兔Lv7初级互助
发布于2019-9-7 16:56

如果说按照执行时间来区分进度的。

把执行时间倒叙排列。取第一条数据。

就是你的最新进度把。

最佳回答
0
凌建Lv7高级互助
发布于2019-9-7 17:03

先select 人员,max(执行时间) from table 

先取出每条的最大日期,

然后 select 人员,avg(反馈进度) 平均进度 from table2


select t.人员,max(t.执行时间),t2.平均进度 最新时间 from table t

left join (

select 人员,avg(反馈进度) 平均进度 from table2) t2 on t.人员=t2.人员


最佳回答
0
doudekaixinLv6中级互助
发布于2019-9-7 17:30(编辑于 2019-9-7 17:30)

Select t1.事项,avg(t2.进度) from (Select 事项,执行人,max(执行时间) 执行时间 from table group by 事项,执行人)  t1, table t2 where t1.事项=t2.事项 and t1.执行人=t2.执行人 and t1.执行时间=t2.执行时间  group by t1.事项

手机打的,可能符号有问题,你试下看看


最佳回答
0
cd_cwLv6初级互助
发布于2019-9-7 18:10
sql语句 分组 取最大值
最佳回答
0
hippomenes157Lv3见习互助
发布于2019-9-9 09:18

用分析函数

  • 7关注人数
  • 697浏览人数
  • 最后回答于:2019-9-9 09:18
    请选择关闭问题的原因
    确定 取消
    返回顶部