Skip to content

Instantly share code, notes, and snippets.

@taoyou
Created November 6, 2015 19:04
Show Gist options
  • Save taoyou/5498e4c9895fbe4bc114 to your computer and use it in GitHub Desktop.
Save taoyou/5498e4c9895fbe4bc114 to your computer and use it in GitHub Desktop.
return list of multiple facets
xquery version "3.1";
declare function local:get_facet ($books as element()*, $path as xs:string, $facet_type as xs:string ) as element()?
{
<facet type="{$facet_type}">{
for $book in $books
let $fld := $book/*[name()=$path]
group by $f := $fld
order by $f descending
return element {$facet_type} {attribute v {$f}, attribute number {fn:count($book)} }
}</facet>
};
let $csv := fetch:text("https://gist.githubusercontent.com/CliffordAnderson/5be754415308dc407fc9/raw/daa23df71ceef375b83dd5b290284f83beeb710b/books.csv")
let $books := csv:parse($csv, map { 'header': true() })/csv/record
return (local:get_facet($books, "Year_Published", "year" ), local:get_facet($books, "Binding", "binding"))
(: return ($book) :)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment