在 Oracle 11g 中过滤掉报告中的重复条目
Posted
技术标签:
【中文标题】在 Oracle 11g 中过滤掉报告中的重复条目【英文标题】:Filter out duplicate entries in report in Oracle 11g 【发布时间】:2012-11-01 18:28:26 【问题描述】:我们在 Windows Server 2008 R2 上运行 Oracle 11g
我目前有一个在全国范围内用于管理我们招聘系统的应用程序,我们是一家合同工程人员公司。
现在,我们有一个规模相当大的候选人数据库,其中包含我们之前合作过的候选人,我使用 Oracle Text 使附加的简历可搜索,效果很好,唯一的问题是我们经常将同一个候选人发送给多个工作,以便让他们更快地工作,这意味着我可能会在搜索结果中获得相同候选人的简历 6 或 7 次,我希望它根据候选人的姓名和招聘人员姓名过滤掉重复项,因为我没有'不想只过滤掉候选人姓名,因为有些人有相同的名字,但通常 1 个招聘人员与 1 个候选人一起工作,我知道这并不完美,但可以帮助缩小范围。
我已经尝试了一些方法来删除欺骗,但我无法让它工作,这是我们用来生成搜索结果的当前查询。
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
有什么想法吗?
再次感谢。
【问题讨论】:
所以您正在搜索简历栏。这是否意味着同一候选人存在于具有其他相关相同字段(例如简历)的多条记录中? 【参考方案1】:您可以使用分析函数来删除重复项:
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
这将为每个候选人/招聘人员对返回一行。
【讨论】:
以上是关于在 Oracle 11g 中过滤掉报告中的重复条目的主要内容,如果未能解决你的问题,请参考以下文章