SELECT ?pred ?bar WHERE { { SELECT ?pred (COUNT(?value) AS ?bar) WHERE { ?subj ?pred ?value . } GROUP BY ?pred ORDER BY DESC(?bar) LIMIT 1000 } }
times out, while
SELECT ?pred (COUNT(?value) AS ?bar) WHERE { ?subj ?pred ?value . } GROUP BY ?pred ORDER BY DESC(?bar) LIMIT 1000
doesn't.
Disabling the optimizer doesn't help here.
Potentially related https://jira.blazegraph.com/browse/BLZG-1252, although not flattening the sub query is what's desired here.
It works if re-written using named sub-queries:
SELECT ?pred ?bar WITH { SELECT ?pred (COUNT(?value) AS ?bar) WHERE { ?subj ?pred ?value . } GROUP BY ?pred ORDER BY DESC(?bar) LIMIT 1000 } AS %inner WHERE { INCLUDE %inner } ORDER BY DESC(?bar)