Yeah, Calcite doesn't support field aliases in the having clause. The query
should work if you use count(*). We could consider this a regression, but I
think this will be a won't fix.

Joel Bernstein
http://joelsolr.blogspot.com/

On Tue, May 16, 2017 at 12:51 PM, Timothy Potter <thelabd...@gmail.com>
wrote:

> This SQL used to work pre-calcite:
>
> SELECT movie_id, COUNT(*) as num_ratings, avg(rating) as aggAvg FROM
> ratings GROUP BY movie_id HAVING num_ratings > 100 ORDER BY aggAvg ASC
> LIMIT 10
>
> Now I get:
> Caused by: java.io.IOException: -->
> http://192.168.1.4:8983/solr/ratings_shard2_replica1/:Failed to
> execute sqlQuery 'SELECT movie_id, COUNT(*) as num_ratings,
> avg(rating) as aggAvg FROM ratings GROUP BY movie_id HAVING
> num_ratings > 100 ORDER BY aggAvg ASC LIMIT 10' against JDBC
> connection 'jdbc:calcitesolr:'.
> Error while executing SQL "SELECT movie_id, COUNT(*) as num_ratings,
> avg(rating) as aggAvg FROM ratings GROUP BY movie_id HAVING
> num_ratings > 100 ORDER BY aggAvg ASC LIMIT 10": From line 1, column
> 103 to line 1, column 113: Column 'num_ratings' not found in any table
>         at org.apache.solr.client.solrj.io.stream.SolrStream.read(
> SolrStream.java:235)
>         at com.lucidworks.spark.query.TupleStreamIterator.fetchNextTuple(
> TupleStreamIterator.java:82)
>         at com.lucidworks.spark.query.TupleStreamIterator.hasNext(
> TupleStreamIterator.java:47)
>         ... 31 more
>

Reply via email to