如何在 OBIEE 中仅显示最高学历

How to show only highest education in OBIEE

大家晚上好,

我正在使用 OBIEE,我正在尝试提取一个包含一些候选人信息的文件以保存在我们的记录中,因为我的组织需要尽快删除大部分数据。

我有人们在职位空缺申请中提出的与招聘相关的数据。

我试图让每个候选人的每个申请单行(即,如果一个候选人申请了 2 份不同的工作,它将算作 2 行),并插入最高学历、相关机构、他们最近的工作职务,以及最近的雇主姓名。

我有这些事实:

ID, degree_type, 机构, 职称, 雇主。

而且都有开学日期和毕业日期。

当我提取报告时,我得到如下内容:

ID degree_type institution job_title employer
001 Doctorate Univ. A eater google
001 Master's Univ. B sleeper samsung
001 Other Univ. A jumper apple
002 Bachelor's Univ. C clapper nutella
002 Master's Univ. D somethinger fujitsu
002 Doctorate Univ. A somethinger fujitsu
003 Other Univ. E eater EU
003 Doctorate Univ. Z spy UN

如您所见,每个人的教育水平可能不同,也可能不同,当我提取此分析时,我有一个包含多行的 ID,多达每个学位和每个工作经验,按时间顺序排序订单。

这会产生一些可读性问题。另外,我们只要最高学历和最近的工作。

所以像这样。

ID degree_type institution job_title employer
001 Doctorate Univ. A eater google
002 Doctorate Univ. A somethinger fujitsu
003 Doctorate Univ. Z eater EU

相反,当我尝试应用过滤器或步骤时,我只能设法获得基于其中之一的结果

A) 最近的学位和最近的雇主,或者 b) 每个学位和在学位的同一时间段内进行的每个工作经历。

选项 A 因多种原因不适用,例如,如果有人在获得博士学位后获得了证书,我将让一个人拥有“其他”,而他们应该拥有“博士学位”

选项 B 目前没有用,因为我们只需要一行。另外,如果我毕业后工作,那份工作经历就不会出现,因为它只显示在读期间所做的工作。

我是OBIEE新手,对SQL不熟悉。我通常使用 R,并且出于完全不同的原因。

如果我可以为每个学位分配一个值,然后按最高过滤(例如,如果有博士学位,则显示它并停止。否则显示硕士学位。如果没有硕士和博士学位,则显示学士和停止。)然后按日期添加工作经验,那就太好了。

有办法吗?

非常感谢!如果没有任何意义,我们深表歉意。

PS> 我已经看到这个回复了How To Get Highest Education Using MySQL?

但是那个人的每个学位都有多个列,而我一共有。

我假设 OBIEE 只是一个数据库,您可以使用 SQL 获取信息。

我还假设您提供的 ID 列代表每个员工的唯一 ID。

您的任务即使不是高级 SQL 技术也需要中级才能解决。以下是步骤。

  1. 您需要编纂学位级别的排序顺序 - 在 3NF(第三范式)中,您将添加一个引用 table 以存储每个学位一行并包含 degree_name varchar 列(主键)等于您在 post 中列出的值,然后另一列 degree_sort 整数按您想要的方式对度数进行排序。您将在 varchar 值上加入此 table 并在 degree_sort 值

    上加入 return
  2. 处理关系:另一个复杂的问题是如何处理一名员工拥有多个博士学位(我认为这是最高的)教育水平的可能性——你需要一个“start_date”或一些数据指向打破平局。

这里有一个堆栈 post 解释了一个类似的场景,获取代表文档最新修订的记录(修订是您的学位级别,文档是您的员工 ID):

您的分割子句为:

PARTITION BY id ORDER BY degree_sort DESC, start_date DESC

注意:where 子句(参见参考答案中的 sql)处理“return 仅排名为 1 的行”;在 ORDER BY 子句中使用 ASC(升序)和 DESC(降序)进行“从低到高”或“从高到低”的排序。