说我有使用驱动程序的便捷方法的一般SQL查询:
statement = select().from(keyspace, table)
.where(eq("fieldx", var1))
.and(eq("fieldy", var2))
.orderBy(asc("fieldz"));
return client.getSession().execute(statement);
以及如何重新处理上面的查询以支持这种CQL / SQL:
select fielda, fieldb, avg(fieldc), max(fielde) from ...
使用的是IntelliJ,我发现后,select().
我只能IT连锁追加一个column()
进行筛选查询特定列,但我没有看到可用的选项avg()
和max()
。看一下JavaDocs,看起来应该存在吗?或者我没有使用正确的select()
方法(我是Cassandra和这个Java驱动程序的新手)。使用IDE中的goto声明,我看到该select()
方法导致QueryBuilder类的静态select()
方法返回该SelectionOrAlias()
方法,该方法与JavaDocs匹配该类中的可用方法。
对于导入,这些是通过驱动程序导入的非自定义类:
import com.datastax.driver.core.ResultSet;
import com.datastax.driver.core.Statement;
import com.google.inject.Inject;
import static com.datastax.driver.core.querybuilder.QueryBuilder.*;
正确的查询设置我缺少什么?
QueryBuilder
从3.3.0 / dse 1.3.0(JAVA-1443)开始,可以使用CQL中的常见聚合方法。这是您将如何使用它们:
import com.datastax.driver.core.Statement;
import static com.datastax.driver.core.querybuilder.QueryBuilder.*;
public class Example {
public static void main(String args[]) {
Statement statement = select("fielda",
"fieldb",
avg("fieldc"),
max("fielde"))
.from("tbl");
System.out.println(statement);
}
}
这样产生: SELECT fielda,fieldb,avg(fieldc),max(fielde) FROM tbl;
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句