如何计算 Presto 中数组元素的出现次数?

Max*_*Mir 3 sql presto

我在 Presto 中有一个数组,我想计算每个元素在其中出现的次数。例如,我有

[a, a, a, b, b]
Run Code Online (Sandbox Code Playgroud)

我想得到类似的东西

{a: 3, b: 2}
Run Code Online (Sandbox Code Playgroud)

Pio*_*sen 5

我们没有这方面的直接功能,但您可以结合UNNEST使用histogram:

presto> SELECT histogram(x)
     -> FROM UNNEST(ARRAY[1111, 1111, 22, 22, 1111]) t(x);
     _col0
----------------
 {22=2, 1111=3}
Run Code Online (Sandbox Code Playgroud)

您可能希望为此直接功能提交一个新问题。