我无法在主分区上执行分组依据。我正在使用Cassandra 3.10。当我分组时,出现以下错误。
InvalidReqeust: Error from server: code=2200 [Invalid query] message="Group by currently only support groups of columns following their declared order in the Primary Key
。即使我仍然面临问题,我的专栏仍然是主键。
我的模式是
Table trends{
name text,
price int,
quantity int,
code text,
code_name text,
cluster_id text
uitime timeuuid,
primary key((name,price),code,uitime))
with clustering order by (code DESC, uitime DESC)
我运行的命令是:select sum(quantity) from trends group by code;
答案 0 :(得分:1)
对于初学者,您的架构无效。您不能在代码上设置群集顺序,因为它是分区键。顺序将由其哈希决定(除非使用字节顺序分区程序,但不要这样做)。
您所谈论的查询和事情确实起作用。例如,您可以运行
> SELECT keyspace_name, sum(partitions_count) AS approx_partitions FROM system.size_estimates GROUP BY keyspace_name;
keyspace_name | approx_partitions
--------------------+-------------------
system_auth | 128
basic | 4936508
keyspace1 | 870
system_distributed | 0
system_traces | 0
他们的架构在哪里:
CREATE TABLE system.size_estimates (
keyspace_name text,
table_name text,
range_start text,
range_end text,
mean_partition_size bigint,
partitions_count bigint,
PRIMARY KEY ((keyspace_name), table_name, range_start, range_end)
) WITH CLUSTERING ORDER BY (table_name ASC, range_start ASC, range_end ASC)
您提供的伪架构可能与实际的有所不同。您可以在问题中提供describe table xxxxx
的输出吗?