[英]SPARQL limit only a specific variable in a result triple
我嘗試使用三元組合的最高變量獲得SPARQL結果。
好的,讓我們嘗試解釋一下。
假設我們得到了這樣的東西:
:resource1 pred:hasQuality :UltraQuality
:resource2 pred:hasQuality :MediumQuality
:resource2 pred:hasQuality :LowQuality
:resource3 pred:hasQuality :UltraQuality
:resource3 pred:hasQuality :LowQuality
:resource4 pred:hasQuality :LowQuality
現在,我想在那里獲得最高質量的所有資源。 可以使用ORDER BY或MAX訂購質量。 (L-> M-> U)。
我做了很多這樣的嘗試:
SELECT ?res ?qual
WHERE {
?res pred:hasQuality ?qual.
}
ORDER BY ?res DESC(?qual)
但是現在,如果相同的輪胎有三個以上,我想消除其他三個。
預期結果應為:
:resource1 :UltraQuality
:resource2 :MediumQuality
:resource3 :UltraQuality
:resource4 :LowQuality
您想group by
項目group by
,這為每個項目提供了一組質量。 您要從該項目中獲取最大值。 假設您有以下數據:
@prefix : <http://stackoverflow.com/q/20562673/1281433/>
:a :quality 3 .
:a :quality 4 .
:a :quality 5 .
:b :quality 9 .
:c :quality 2 .
:c :quality 1 .
然后,您可以使用如下查詢:
prefix : <http://stackoverflow.com/q/20562673/1281433/>
select ?item (max(?quality) as ?maxQuality)
where {
?item :quality ?quality .
}
group by ?item
您將得到以下結果:
---------------------
| item | maxQuality |
=====================
| :b | 9 |
| :c | 2 |
| :a | 5 |
---------------------
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.