CQL - 不能进行算术运算

Posted

技术标签:

【中文标题】CQL - 不能进行算术运算【英文标题】:CQL - can't do arithmetic operations 【发布时间】:2018-10-10 01:37:49 【问题描述】:

下午好,

我目前正在开始使用 Cassandra 和 CQL,但遇到了问题。 我做了一个非常简单的数据库,我想在列之间做一些算术运算(加法,乘法......)。当我尝试这样做时,我收到以下错误:

"no viable alternative at input '-' "

据我所知,Cassandra 长期不支持算术运算,但 official documentation 似乎另有说法。

所以我的问题是:我做错了吗?还是这些运算符仍然不受支持?

我正在使用 Cassandra 3.11.2 和 cqlsh 5.0.1。我的查询是

Select ProductName, NetIncome, ProductionCost, (NetIncome - ProductionCost) from globalsales.Rentability group by ProductName;

其中 NetIncome 和 ProductionCost 都是 int 类型的列。

【问题讨论】:

【参考方案1】:

是的,那个文档写得有点过早。目前不支持将算术作为 CQL 的一部分。它包含在CASSANDRA-11935 下的JIRA 项目中。

该票证将应用于 Cassandra 4.0 版本,该版本目前没有 ETA。

编辑 20210824

使用 Cassandra 4.0,现在可以在列之间进行算术运算。上面的查询现在应该可以工作了。

> SELECT productname, netincome, productioncost, netincome - productioncost FROM rentability;

 productname         | netincome | productioncost | netincome - productioncost
---------------------+-----------+----------------+----------------------------
 Stihl 2018 Chainsaw |    625.95 |          82.14 |                    543.81

(1 rows)

【讨论】:

谢谢!我看到了一些用户定义函数的解决方案,我要试试。 @J.C 是的,这是您可以尝试的一件事。实际上,我不久前回答了一个 UDF 问题,可能会对您有所帮助:***.com/questions/47913729/… 谢谢,我通过其他帖子 (***.com/questions/32859406/…) 中的示例得到了我想要的。

以上是关于CQL - 不能进行算术运算的主要内容,如果未能解决你的问题,请参考以下文章

运算符

运算符

shell中如何进行算术运算

什么是算术运算?什么是关系运算?什么是逻辑运算?

算术运算符++和--的用法

C语言中啥是算术运算