我想从某个图表中获取姓名,姓氏和出生地点。我得到的结果如“John”“Doe”“London”和“John”“Doe”“UK”。有没有办法以3(名字,姓氏和出生地)中的2(名字和姓氏?)来限制和表达DISTINCT?
答案 0 :(得分:3)
您尚未显示任何您尝试的示例数据或查询,这使得此问题难以回答,请在将来提供这些详细信息。
一种方法是使用GROUP BY
代替DISTINCT
,例如
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?name ?surname (SAMPLE(?loc) AS ?location)
WHERE
{
?person foaf:givenName ?name ;
foaf:familyName ?surname ;
foaf:based_near ?loc .
}
GROUP BY ?name ?surname
此查询按?name
和?surname
将您的结果分组,并为每组结果选择一个可能的位置。
此处使用的SAMPLE()
聚合基本上要求查询引擎从分组结果中为非组键变量选择一个可能的值。