Andres de la Peña created CASSANDRA-18060:
---------------------------------------------
Summary: Within collection aggregation functions
Key: CASSANDRA-18060
URL: https://issues.apache.org/jira/browse/CASSANDRA-18060
Project: Cassandra
Issue Type: New Feature
Components: CQL/Semantics
Reporter: Andres de la Peña
Assignee: Andres de la Peña
The new mechanism for building native functions introduced by CASSANDRA-17811
can be used to provide within-collection aggregation functions. We can use that
mechanism to add new CQL functions to get:
* The number of items in a collection.
* The max/min items of a collection.
* The sum/avg of the items of a numeric collection.
* The keys or the values of a map.
For example:
{code}
CREATE TABLE k.t (k int PRIMARY KEY, l list<int>, m map<int, int>);
INSERT INTO t(k, l, m) VALUES (0, [1, 2, 3], {1:10, 2:20, 3:30});
> SELECT map_keys(m), map_values(m) FROM t;
system.map_keys(m) | system.map_values(m)
--------------------+----------------------
{1, 2, 3} | [10, 20, 30]
> SELECT collection_count(m), collection_count(l) FROM t;
system.collection_count(m) | system.collection_count(l)
----------------------------+----------------------------
3 | 3
> SELECT collection_min(l), collection_max(l) FROM t;
system.collection_min(l) | system.collection_max(l)
--------------------------+--------------------------
1 | 3
> SELECT collection_sum(l), collection_avg(l) FROM t;
system.collection_sum(l) | system.collection_avg(l)
--------------------------+--------------------------
6 | 2
{code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]