【发布时间】:2013-07-15 16:25:57
【问题描述】:
我创建表:
CREATE TABLE T (
I int PRIMARY KEY,
A text,
B text
);
比我添加两列 X 和 Y 使用:
ALTER TABLE T ADD X int;
CREATE INDEX ON T (X);
ALTER TABLE T ADD Y int;
CREATE INDEX ON T (Y);
我放了一些数据,现在我想计算 X 和 Y 上具有不同值的行(即使 X Y 也可以)。我尝试过这样的事情:
select COUNT(*) from T where X < Y ;
如果没有COUNT,这也行不通 - 只是简单的*。
但我收到错误no viable alternative at input ';'
您对如何克服此错误有一些建议吗?
我尝试使用计数器而不是整数,但他们强迫我将所有非计数器数据放入主键,这对我来说不是一个好主意...
我正在使用 Cassandra 1.2.6 和 CQL 3。
PS 我可以对所有行执行 UPDATE 吗?没有WHERE 子句还是有一些虚拟子句?
【问题讨论】:
-
您的 Y 变量未编入索引。您是否尝试过在 Y 上创建索引然后运行查询。
-
它们被编入索引.. 刚刚展示了我如何添加它们以及如何在一张表上设置索引的示例..
-
你可以看看 CQL 参考。我认为不支持这种关系查询。详情请阅读:cassandra.apache.org/doc/cql3/CQL.html#selectStmt
-
恐怕你是对的:/