MAP_AGG

Updated at:

Returns a map that is created by using a and b. a is the key in the map. b is the value of the key in the map. If the key in the map is null, the key is ignored. If the key field has duplicate values, one of the values is randomly retained.

Usage notes

  • MaxCompute V2.0 provides new extended functions. If the functions you use involve new data types, including TINYINT, SMALLINT, INT, FLOAT, VARCHAR, TIMESTAMP, and BINARY, you must execute a statement to enable the MaxCompute V2.0 data type edition:

    • Session level: Add SET odps.sql.type.system.odps2=true; before the SQL statement that you want to execute, and commit and execute them together.

    • Project level: The project owner can enable the MaxCompute V2.0 data type edition for the project based on the project requirements. Statement:

      setproject odps.sql.type.system.odps2=true;

      The configuration takes effect after 10 to 15 minutes.

      For more information about setproject, see Project commands. For more information about the precautions you must take when enabling the MaxCompute V2.0 data type edition at the project level, see Data type version guide.

  • If you use an SQL statement that includes multiple aggregate functions and the project resources are insufficient, memory overflow may occur. We recommend that you optimize the SQL statement or purchase additional computing resources as needed.

Syntax

map<K, V> map_agg(K a, V b);

Parameters

  • a: an input field that is used as the key in the map.

  • b: an input field that is used as the value in the map.

Return value

A new map that is created by using a and b is returned.

Examples

select map_agg(a, b) from
        values (1L, 'apple'), (2L, 'hi'), (null, 'good'), (1L, 'pie') t(a, b);

The following result is returned:

+------------------------+
| _c0                    |
+------------------------+
| {"2":"hi","1":"apple"} |
+------------------------+

Related functions

MAP_AGG is an aggregate function. For more information about the functions that are used to calculate the average value of multiple input records and to aggregate parameters, see Aggregate Functions Overview.