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 - 不能进行算术运算的主要内容,如果未能解决你的问题,请参考以下文章