Select 特定列加上 avg 和 max 使用 datastax Java driver for Cassandra 中的别名可链接便捷方法
Select specific columns plus avg and max using the aliased chainable convenience methods in datastax Java driver for Cassandra
假设我使用 driver:
的便捷方法进行一般 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().
之后我只能将它链接起来附加一个 column()
来过滤特定列的查询,但我没有看到 [=18= 的可用选项] 和 max()
。查看 Java 文档,看起来应该存在这些文档?或者我没有使用可用的正确 select()
方法(我是 Cassandra 和这个 Java driver 的新手)。使用来自 IDE 的 goto 声明,我看到 select()
方法导致 QueryBuilder class 的静态 select()
方法 returns a SelectionOrAlias()
与 JavaDocs 匹配的可用方法的方法 class.
对于导入,这些是导入的 non-custom classes w.r.t。 driver:
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.*;
正确的查询设置我缺少什么?
自 3.3.0 / dse 1.3.0 (JAVA-1443) 以来,QueryBuilder
中提供了 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;
假设我使用 driver:
的便捷方法进行一般 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().
之后我只能将它链接起来附加一个 column()
来过滤特定列的查询,但我没有看到 [=18= 的可用选项] 和 max()
。查看 Java 文档,看起来应该存在这些文档?或者我没有使用可用的正确 select()
方法(我是 Cassandra 和这个 Java driver 的新手)。使用来自 IDE 的 goto 声明,我看到 select()
方法导致 QueryBuilder class 的静态 select()
方法 returns a SelectionOrAlias()
与 JavaDocs 匹配的可用方法的方法 class.
对于导入,这些是导入的 non-custom classes w.r.t。 driver:
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.*;
正确的查询设置我缺少什么?
自 3.3.0 / dse 1.3.0 (JAVA-1443) 以来,QueryBuilder
中提供了 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;