我一直在研究 Wikidata SPARQL 页面 ( here ),我想知道我们是否可以随机打乱结果集的顺序。
我尝试了以下示例,并将随机部分作为注释留下,因为我找不到它的正确语法:
SELECT ?partyLabel ?countryLabel ?count
WHERE{
?party wdt:P31 wd:Q7278.
?party wdt:P17 ?country.
?party wdt:P2124 ?count
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en".}
}
order by #random
limit 15
有人尝试过随机排序选项吗?它存在吗?
最佳答案
可能的候选人是:
但是, ORDER BY RAND()
都没有也不ORDER BY BNODE()
即使使用 hint:Query hint:optimizer "None"
也可以在维基数据上工作(that's why)。
至于UUID()
和STRUUID()
,似乎没有显着的性能差异,因此您可以使用其中任何一个。
请注意浏览器和服务器 cache结果,因此,为每个查询添加一些空格或注释当前时间。
更新
对于单个三重模式,可以使用 the sample service .
关于random - 维基数据 SPARQL 接口(interface) : order by random,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49302006/