oracle 表内做计算再统计的SQL语句怎么写 需要算的内容如下

人员编号变动类型时间8001新增2016-05-138001删除2016-05-148001新增2016-05-158002新增2016-05-138002删除2016-... 人员编号 变动类型 时间

8001 新增 2016-05-13

8001 删除 2016-05-14

8001 新增 2016-05-15

8002 新增 2016-05-13

8002 删除 2016-05-14

8002 新增 2016-05-15

8002 删除 2016-05-16

·

·

·

把人员的类型新增总和 - 删除总和 = 1 的人 累加 最后统计出共有多少人且把这些人的最后一次变动类型的时间统计出来

是不是要分两个语句写,具体怎么写,在线等,T_T
展开
 我来答
百度网友024827e
2016-05-25 · TA获得超过1657个赞
知道大有可为答主
回答量:1117
采纳率:93%
帮助的人:348万
展开全部
select count(*)
from (select 人员编号,
sum(case
when 变动类型 = '新增' then
1
else
0
end) as 新增次数,
sum(case
when 变动类型 = '删除' then
1
else
0
end) as 删除次数
from ceshi
group by 人员编号)
where 新增次数 - 删除次数 = 1;
select max(时间), 人员编号
from ceshi
where 人员编号 in (select 人员编号
from (select 人员编号,
sum(case
when 变动类型 = '新增' then
1
else
0
end) as 新增次数,
sum(case
when 变动类型 = '删除' then
1
else
0
end) as 删除次数
from ceshi
group by 人员编号)
where 新增次数 - 删除次数 = 1)
group by 人员编号;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式