Hi Julian,

yes, it occurs in solr-adapter. we need to get the DISTINCT status for 
translating to solr's query plan. So can I skip this optimization? If I can't, 
I will make a JIRA case.


Thanks,


Haochao Zhuang




------------------ ???????? ------------------
??????: "Julian Hyde"<[email protected]>;
????????: 2018??11??14??(??????) ????11:36
??????: "dev"<[email protected]>;
????: "????"<[email protected]>; 
????: Re: count(distinct col) can't recognize distinct



Can you log a JIRA case? This is specific to the Solr adapter, yes? If so, make 
that clear in the JIRA case.

Julian


> On Nov 13, 2018, at 7:29 PM, Haisheng Yuan <[email protected]> wrote:
> 
> The plan is correct for the following query:
> 
> select channel, count(distinct version) from daming group by channel
> 76:SolrAggregate(group=[{0}], EXPR$1=[COUNT($1)])
>  74:SolrAggregate(group=[{4, 7}])
>    0:SolrTableScan(table=[[test03.loc:2181/dmsolr, daming]])
> 
> It will first get group by channel and version, then group by channel. the 
> count will be the number of distinct versions. It is an optimization for 
> single aggregation with count distinct.
> 
> 
> Thanks ~
> Haisheng Yuan
> ------------------------------------------------------------------
> ????????????<[email protected]>
> ????????2018??11??14?? 11:20:41
> ????????dev<[email protected]>
> ?????????????? count(distinct col) can't recognize distinct
> 
> Maybe I need to show more detail about this.
> I printed the explaination using `input.explain(pw)`.
> 
> 
> select channel, count(distinct version), sum(amount) from daming group by 
> channel
> 500:SolrAggregate(group=[{4}], EXPR$1=[COUNT(DISTINCT $7)], EXPR$2=[SUM($0)])
>  0:SolrTableScan(table=[[test03.loc:2181/dmsolr, daming]])
> 
> 
> select channel, count(distinct version) from daming group by channel
> 76:SolrAggregate(group=[{0}], EXPR$1=[COUNT($1)])
>  74:SolrAggregate(group=[{4, 7}])
>    0:SolrTableScan(table=[[test03.loc:2181/dmsolr, daming]])
> 
> 
> 
> Thanks!
> 
> 
> Best Regards
> haochao.zhuang
> 
> 
> ------------------ ???????? ------------------
> ??????: "????"<[email protected]>;
> ????????: 2018??11??13??(??????) ????10:43
> ??????: "dev"<[email protected]>;
> 
> ????: ?????? count(distinct col) can't recognize distinct
> 
> 
> 
> 
> 
> 
> 
> Dears
> 
> 
> i catch it in the solr adaptor. it is implemented by solr as elasticsearch 
> adaptor.
> 
> 
> case a: correct
> select a, count(distinct b) from tbl group by a;  
> 
> 
> case b: incorrect
> 1. select a, count(distinct b) from tbl where c = 'c' group by a;
> 
> 2. select a, count(distinct b), max(c)  from tbl group by a; 
> 
> 
> 
> 
> attached solr's code
> 
> 
> public void implement(Implementor implementor) {
>    implementor.visitChild(0, getInput());
> 
> 
>    final List<String> inNames = 
> SolrRules.solrFieldNames(getInput().getRowType());
>    for(Pair<AggregateCall, String> namedAggCall : getNamedAggCalls()) {
> 
> 
>      AggregateCall aggCall = namedAggCall.getKey();
> 
> 
>      Pair<String, String> metric = toSolrMetric(implementor, aggCall, 
> inNames);
>      implementor.addReverseAggMapping(namedAggCall.getValue(), 
> metric.getKey().toLowerCase(Locale.ROOT)+"("+metric.getValue()+")");
>      implementor.addMetricPair(namedAggCall.getValue(), metric.getKey(), 
> metric.getValue());
>    }
>    ...
> }
> 
> 
> Best Regards
> Haochao Zhuang
> 
> 
> 
> 
> 
> 
> ------------------ ???????? ------------------
> ??????: "Michael Mior"<[email protected]>;
> ????????: 2018??11??13??(??????) ????9:35
> ??????: "dev"<[email protected]>;
> 
> ????: Re: count(distinct col) can't recognize distinct
> 
> 
> 
> Can you give a specific example of a query that doesn't do what you expect
> it to do?
> 
> --
> Michael Mior
> [email protected]
> 
> 
> Le mar. 13 nov. 2018 ?? 07:56, ???? <[email protected]> a ??crit :
> 
>> Hi Guys:
>> 
>> 
>> I got a question why it can't recognize DISTINCT tag on COUNT(DISTINCT
>> col) aggregation function sometimes.
>> 
>> 
>> but it is not problem when my sql query statement have WHEN clause or one
>> more aggregation functions.
>> 
>> 
>> Best Regards
>> Haochao Zhuang

Reply via email to