Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在Oracle 11g中筛选出报表中的重复条目_Sql_Oracle_Plsql_Oracle Apex - Fatal编程技术网

Sql 在Oracle 11g中筛选出报表中的重复条目

Sql 在Oracle 11g中筛选出报表中的重复条目,sql,oracle,plsql,oracle-apex,Sql,Oracle,Plsql,Oracle Apex,我们正在Windows Server 2008 R2上运行Oracle 11g 我目前有一个应用程序,用于管理我们的招聘系统,我们是一家合同工程人员配置公司 现在,我们有一个相当大的数据库,里面有我们以前共事过的应聘者,我使用Oracle文本让附加的简历可以搜索,这很好,唯一的问题是我们经常将同一个应聘者发送到多个职位,以便让他们更快地工作,这意味着我可能会在搜索结果中看到同一候选人的简历6到7次,我希望根据候选人的姓名和招聘人员的姓名筛选出重复的简历,因为我不想只筛选候选人的姓名,因为有些人的

我们正在Windows Server 2008 R2上运行Oracle 11g

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

现在,我们有一个相当大的数据库,里面有我们以前共事过的应聘者,我使用Oracle文本让附加的简历可以搜索,这很好,唯一的问题是我们经常将同一个应聘者发送到多个职位,以便让他们更快地工作,这意味着我可能会在搜索结果中看到同一候选人的简历6到7次,我希望根据候选人的姓名和招聘人员的姓名筛选出重复的简历,因为我不想只筛选候选人的姓名,因为有些人的姓名相同,但通常一名招聘人员与一名候选人一起工作,我知道这并不完美,但有助于缩小范围

我尝试了一些方法来删除重复项,但是我无法让它工作,下面是我们用来生成搜索结果的当前查询

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

这将为每个候选人/招聘人员对返回一行。

您可以使用分析函数删除重复项:

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

这将为每个应聘者/招聘人员对返回一行。

因此您正在搜索简历列。这是否意味着同一候选人在多个记录中与其他相关的相同字段(如简历)相同?因此您正在搜索简历列。这是否意味着同一应聘者在多个记录中有其他相关的相同字段,如简历?