Re: "Unbound" in SPARQL (was Re: [TF-LIB] COALESCE is an unhelpful choice of name)

On 15/11/2009 18:12, Steve Harris wrote:

> It's a little unfortunate because we might have to return an error from
> a MIN (etc.) over an empty multiset, which isn't ideal for some usecases:
>
> data:
>
> :alice a :Salesperson ;
> :sales [
> :date "2009-11-14" ;
> :volume 12 ;
> ] , [
> :date "2009-11-14" ;
> :volume 9 ;
> ] .
> :bob a :Salesperson ;
> :sales [
> :date "2009-11-14" ;
> :volume 8 ;
> ] .
> :carol a :Salesperson .
>
> query:
>
> SELECT ?x (MAX(?sales) AS ?bestDay)
> WHERE {
> ?x a :Salesperson .
> OPTIONAL {
> ?x :sales [
> :volume ?sales ;
> ]
> }
> }
> GROUP BY ?x
>
> results:
>
> ?x = :alice, ?bestDay = 12
> ?x = :bob, ?bestDay = 8
> [no row for :carol because we can't return "unbound"/null from MAX(?sales)]
>

Would this work?

SELECT ?x ( TRY(MAX(?sales), -1) AS ?bestDay)

or other choice of marker for no value.

	Andy

Received on Monday, 16 November 2009 20:14:19 UTC