代码之家  ›  专栏  ›  技术社区  ›  noobie2023

雅典娜:如何检查不同行数组中重复元素的数量

  •  0
  • noobie2023  · 技术社区  · 6 年前

    我的桌子在雅典娜大街上。一般来说,我不熟悉SQL、HIVE或雅典娜。我有下表

    col_id , col_list
    ABC    , [abcde, 123gd, 12345, ...]
    B3C    , [bbbbb, ergdg, 12345, ...]
    YUT    , [uyteh, bbbbb, 12345, ...]  
    
    

    col_id 是唯一的,并且一行数组中的元素也是唯一的。

    我需要运行一个查询来计算在不同行的不同数组中重复的元素总数。在上面的示例中,数组元素 12345 显示在第一、第二和第三行,以及 bbbbb 显示在第2行和第3行中,因此重复元素的数量为2。

    行的数量不是很大,所以我想性能不是问题。

    有谁能告诉我怎么用雅典娜写这个问题吗?谢谢您!

    0 回复  |  直到 6 年前
        1
  •  0
  •   Gordon Linoff    6 年前

    可以分解数组并聚合:

    select col, count(*)
    from t lateral view
         explode(t.col_list) col
    group by col
    order by count(*) desc;