大量Cassandra行的SUM()返回负值

nom7f22z  于 2022-09-27  发布在  Cassandra
关注(0)|答案(1)|浏览(134)

我试图在cassandra中获取列的总和,但它返回负值,尽管我的列中并没有负值行。

cqlsh:samt> select cost from items where cost<0 allow filtering ;

 cost
------

(0 rows)

但当我试图查询列的总和时,它返回:

select sum(cost) from items;
system.sum(cost)
------------------
        -18485190

我试图聚合的行数超过100万,这是原因吗?

nwlls2ji

nwlls2ji1#

欢迎使用堆栈溢出!您没有提供太多详细信息,所以我只能猜测列值太大,当它们全部相加时,会产生一个integer overflow
在任何情况下,无界查询都很昂贵,因为它们需要全表扫描,并且可能会影响集群的性能,特别是在生产环境中运行时。如果需要运行全表聚合,应该在Spark中运行它们。
最后,为了将来的参考,你需要在提问时提供足够的背景信息。一般指导是:(a)提供问题的良好总结,包括软件/组件版本、完整错误消息+完整堆栈跟踪;(b) 描述你试图解决的问题,你所做调查的细节;以及(c)复制问题的最小样本代码。干杯

相关问题