如何在OBIEE中导出候选人最高学历及最近工作经历的单行记录
解决方案
方法1:直接在OBIEE界面操作(无需编写SQL)
- 第一步:新建学历优先级计算列
在OBIEE分析编辑界面点击「新建列」,列名设为degree_priority,输入如下计算规则:
CASE WHEN degree_type = 'Doctorate' THEN 4 WHEN degree_type = 'Master''s' THEN 3 WHEN degree_type = 'Bachelor''s' THEN 2 ELSE 1 END
- 第二步:筛选每个ID的最高学历记录
添加筛选器,选择「基于结果的筛选」,规则为:按ID分组,取degree_priority最大值对应的行,即可保留每个候选人最高学历对应的degree_type和institution字段。 - 第三步:匹配最新工作经历
新建计算列job_end_date_rank,按ID分组对工作经历的结束日期倒序排序,取排序为1的行对应的job_title和employer字段,即可得到该候选人最新任职信息。
方法2:导出原始数据后用R处理(适配你的R使用习惯)
你可以把原始多行列报表导出为csv文件后,用dplyr包快速处理,示例代码如下:
library(dplyr) # 读取原始导出数据 raw_data <- read.csv("你的本地文件路径.csv") # 定义学历优先级映射关系 degree_levels <- c("Other" = 1, "Bachelor's" = 2, "Master's" = 3, "Doctorate" = 4) # 生成目标结果表 result <- raw_data %>% group_by(ID) %>% # 提取最高学历信息 mutate(degree_priority = degree_levels[degree_type]) %>% filter(degree_priority == max(degree_priority)) %>% slice(1) %>% select(ID, degree_type, institution) %>% # 关联匹配最新工作经历 left_join( raw_data %>% group_by(ID) %>% # 把job_end_date替换为你实际的工作结束日期字段名即可 arrange(desc(job_end_date)) %>% slice(1) %>% select(ID, job_title, employer), by = "ID" )
内容的提问来源于stack exchange,提问作者Ad.dan29
相关产品推荐
相关产品推荐

