首页 > 解决方案 > 获取每个属性的不同值的平均数量

问题描述

我正在尝试使用 SPARQL 查询来执行此操作:

对于每个属性,获取它们为实例采用的不同值的平均数量(例如,一级方程式车手的平均职业数量是多少,他们参加的平均团队数量是多少等。 )

标签: sparqlwikidata

解决方案


您需要这样的查询:

SELECT ?p (AVG(?ct) AS ?avg)
WHERE {
   SELECT ?s ?p (COUNT(DISTINCT ?o) AS ?ct) 
   WHERE {
      ?s ?p ?o .
      #more restrictions...
          }
   GROUP BY ?s ?p }
GROUP BY ?p

请注意,这种方法忽略了计数为 0 的情况,即没有职业的 F1 车手。

此外,除非您添加更多限制以减小匹配数据的大小,否则查询可能会超时。


推荐阅读