2015-09-14 3 views
1

Эта функция агрегации SUM не работает. Это не дает результата.Функция SUM в SPARQL

select (SUM(?p) as ?prcc) ?sune 

where { 

?inl Sp:hasp ?p. 

    ?inl Sp:hassuid ?supid. 

?supid Sp:hassune ?sune. 

} 
GROUP BY ?sune 

Данные в "p" представлены в двух формах. Поэтому, когда я меняю свой запрос на

select (SUM(xsd:double(?p)) as ?prcc) ?sune 

or select (SUM(xsd:integer(?p)) as ?prcc) ?sune 

Он не выполняет SUM по значениям с десятичной точкой.

+3

Просьба показать несколько примеров тройки –

+3

** 'Данные в« p »находятся в двух форматах. ** Вы имеете в виду, что литералы представляют собой фактически литературные данные с типом данных xsd: double или что они являются строками, символы которых подходящие лексические формы для xsd: double? Как говорит @TomaszPluskiewicz, вам нужно показать некоторые данные, иначе мы не сможем помочь. –

ответ

1
select (SUM(?p)) 
WHERE 
{ 
    VALUES (?p) { 
     (10.5) 
     (20.5) 
    } 
} 

Я попробовал это на онлайн-редакторе SPARQL online editor он работает fine..may быть и можно попробовать его на ваших данных образцов.