diff --git a/src/main/java/org/nlpcn/es4sql/query/AggregationQueryAction.java b/src/main/java/org/nlpcn/es4sql/query/AggregationQueryAction.java index 0426b038..73a65d02 100644 --- a/src/main/java/org/nlpcn/es4sql/query/AggregationQueryAction.java +++ b/src/main/java/org/nlpcn/es4sql/query/AggregationQueryAction.java @@ -188,7 +188,13 @@ public SqlElasticSearchRequestBuilder explain() throws SqlParseException { TermsAggregationBuilder termsBuilder = (TermsAggregationBuilder) temp.value; switch (temp.key) { case "COUNT": - termsBuilder.order(BucketOrder.count(isASC(order))); + String orderName = order.getName(); + if(isAliasFiled(orderName)) { + termsBuilder.order(BucketOrder.aggregation(orderName, isASC(order))); + }else { + termsBuilder.order(BucketOrder.count(isASC(order))); + } + break; case "KEY": termsBuilder.order(BucketOrder.key(isASC(order))); @@ -487,4 +493,16 @@ private void setLimitFromHint(List hints) { request.setFrom(from); request.setSize(size); } + //判断某个字段名称是否是别名 + private boolean isAliasFiled(String filedName) { + if(select.getFields().size() > 0) { + for (Field field : select.getFields()) { + if(null !=field.getAlias() && field.getAlias().equals(filedName)) { + return true; + } + } + } + return false; + } + }