Skip to content

Commit 30fb22f

Browse files
authored
Merge pull request NLPchina#862 from flame9012/master
count(distinct a) 排序问题
2 parents a1bf9f9 + 3ace721 commit 30fb22f

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

src/main/java/org/nlpcn/es4sql/query/AggregationQueryAction.java

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,13 @@ public SqlElasticSearchRequestBuilder explain() throws SqlParseException {
186186
TermsAggregationBuilder termsBuilder = (TermsAggregationBuilder) temp.value;
187187
switch (temp.key) {
188188
case "COUNT":
189-
termsBuilder.order(BucketOrder.count(isASC(order)));
189+
String orderName = order.getName();
190+
if(isAliasFiled(orderName)) {
191+
termsBuilder.order(BucketOrder.aggregation(orderName, isASC(order)));
192+
}else {
193+
termsBuilder.order(BucketOrder.count(isASC(order)));
194+
}
195+
190196
break;
191197
case "KEY":
192198
termsBuilder.order(BucketOrder.key(isASC(order)));
@@ -475,4 +481,16 @@ private void setLimitFromHint(List<Hint> hints) {
475481
request.setFrom(from);
476482
request.setSize(size);
477483
}
484+
//判断某个字段名称是否是别名
485+
private boolean isAliasFiled(String filedName) {
486+
if(select.getFields().size() > 0) {
487+
for (Field field : select.getFields()) {
488+
if(null !=field.getAlias() && field.getAlias().equals(filedName)) {
489+
return true;
490+
}
491+
}
492+
}
493+
return false;
494+
}
495+
478496
}

0 commit comments

Comments
 (0)