Hi Rumi,

Yes, I have a very similar set of triples.


Suppose you have the following:


sparql clear graph  <http://mygraph.person>;

SPARQL insert in graph <http://mygraph.person>
{ <http://mygraph/person/book1> <http://mygraph/person/books> 1 .
  <http://mygraph/person/book2> <http://mygraph/person/books> 2 .
  <http://mygraph/person/book3> <http://mygraph/person/books> 1 .
  <http://mygraph/person/book3> <http://mygraph/person/books> 3 .
  <http://mygraph/person/book2> <http://mygraph/person/books> 5 };



I am trying to run this query but I still get the error:

SQLState: 37000

Message: SQ074: Line 8: SP030: SPARQL compiler, line 8: syntax error at 
'HAVING' before '('


SQL>SPARQL
SELECT ?s SUM(?books) as ?total
FROM <http://mygraph.person>
WHERE
  {
    ?s  <http://mygraph/person/books> ?books .
  }
HAVING (SUM(?books) > 2);



Which can be the reason? Without the 'having' clause it works pretty well.

Regards,
Silvia
s total VARCHAR VARCHAR
_______________________________________________________________________________

http://mygraph/person/book3 4 http://mygraph/person/book2 7

2 Rows. -- 16 msec.



Best Regards,
Rumi





Thank you, Ivan fo the answer!
Unfortunately I still can not run this query
select ?s SUM(?books) as ?total
FROM <http://mygraph.person>
WHERE {?s  <http://mygraph/person/books> ?books . }
having (sum(?books) > 2)

I get the following error

SQLState: 37000

Message: SQ074: Line 5: SP030: SPARQL compiler, line 5: syntax error at 'having' before '('
sparql
select ?s SUM(?books)
FROM <http://mygraph.person>
WHERE {?s  <http://mygraph/person/books> ?books . }
having (sum(?books) > 2)

Do you know what the reason is? I suppose I do not use correct syntax
for HAVING or ... ?

/Silvia
There's no ?total in the scope of HAVING, but there are bindings
of ?books and the ability of using aggregates.

Best Regards,

Ivan Mikhailov
OpenLink Software
http://virtuoso.openlinksw.com

On Fri, 2010-07-02 at 11:13 +0200, Silvia Stefanova wrote:

Hello,

I would like to make a SPARQL query with aggregation with a condition on
the result of the aggregate, e.g.:

select ?s SUM(?books) as ?total
FROM <http://mygraph.person>
WHERE {?s  <http://mygraph/person/books> ?books.}
having (?total > 2) .

Would you please tell me how to make this in Virtuoso?

Regards,
Silvia

------------------------------------------------------------------------------
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
Virtuoso-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/virtuoso-users


------------------------------------------------------------------------------
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
Virtuoso-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/virtuoso-users

------------------------------------------------------------------------------
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
Virtuoso-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/virtuoso-users


------------------------------------------------------------------------------
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
Virtuoso-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/virtuoso-users


Reply via email to