在Oracle 11G中的报告中滤除重复条目



我们正在Windows Server 2008 R2

上运行Oracle 11G

我目前有一个用于管理我们的招聘系统的应用程序,我们是合同工程人员配备公司。

现在,我们有一个相当相当大的候选数据库数据库,我使用Oracle Text使附件可搜索的简历可搜索,这很棒,唯一的问题是我们经常将同一候选人发送到多个候选人为了使他们更快地工作,这意味着我可能会在搜索结果中获得6或7次的同一候选人的简历,我希望根据候选人的名称和招聘人员的名字过滤出重复项,因为我不喜欢``因为有些人有相同的名字,所以只想过滤候选人的名字,但是通常1名招聘人员可以与1个候选人一起工作,我知道这不是完美的,但可以帮助缩小事物的范围。

我已经尝试了几件事来删除dupes,但是我无法正常工作,这是我们用来生成搜索结果的当前查询。

select score(1) relevance,
"PKEY",
"DATE_SUB",
"CLIENT",
"CANDIDATE",
"RECRUITER",
"SALES",
dbms_lob.getlength("RESUME") "RESUME",
+"MIMETYPE",
"FILENAME",
"POSITION",
"AVAILABILITY",
"RATE",
"ISSUES",
"WHEN_INT",
"FEEDBACK",
"NOTES"
from "SUBMITTALS"
where CONTAINS (resume, :P11_SEARCH, 1) > 0 order by 1 desc

有什么想法?

再次感谢。

您可以使用分析功能删除重复项:

select * from (
  select score(1) relevance,
  "PKEY",
  "DATE_SUB",
  "CLIENT",
  "CANDIDATE",
  "RECRUITER",
  "SALES",
  dbms_lob.getlength("RESUME") "RESUME",
  "MIMETYPE",
  "FILENAME",
  "POSITION",
  "AVAILABILITY",
  "RATE",
  "ISSUES",
  "WHEN_INT",
  "FEEDBACK",
  "NOTES",
  row_number() over (partition by CANDIDATE, RECRUITER order by PKEY) rn
  from "SUBMITTALS"
  where CONTAINS (resume, :P11_SEARCH, 1) > 0 
 )
 where rn = 1
 order by 1 desc

这将返回每个候选人/招聘者对一排。

最新更新