如何排除重复项

我想按姓名获取某人的生日,但不能重复。

我在这里看到它们是由于日期格式不同:033

但是我不知道该如何忽略它,尝试了select distinct,但没有帮助。

PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
select distinct ?person ?birthDate
where {
  ?person foaf:name "Julius Caesar"@en.
  ?person a foaf:Person.
  ?person dbo:birthDate ?birthDate
}

这就是我得到的:

    person                                                  birthDate
1   http://dbpedia.org/resource/Julius_Caesar               "-100-07-13"^^xsd:date
2   http://dbpedia.org/resource/Julius_Caesar               "-100-7-13"^^xsd:date
3   http://dbpedia.org/resource/Julius_Caesar_(cricketer)   "1830-03-25"^^xsd:date
4   http://dbpedia.org/resource/Julius_Caesar_(cricketer)   "1830-3-25"^^xsd:date
5   http://dbpedia.org/resource/Julius_Caesar_(judge)       "1557-1-1"^^xsd:date

当我只需要3个结果而不是5个结果时。

cjzmly123 回答:如何排除重复项

好吧,这些 DISTINCT结果行。

如果您不关心哪些获得的不必要的有效日期,则可以使用SAMPLE(),如下所示,results seen here

PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>

SELECT DISTINCT                         ?person 
                ( SAMPLE(?birthDate) AS ?DoB )
WHERE
 {
   ?person  foaf:name      "Julius Caesar"@en .
   ?person  a              foaf:Person .
   ?person  dbo:birthDate  ?birthDate
  }
本文链接:https://www.f2er.com/3115632.html

大家都在问