athena中数组元素的sql-group-by

6rvt4ljy  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(459)

我有一个有两列的表。该表具有以下架构

column_name ---> type
student_id  ---> int
subjects    ---> array<string>

样本数据为:

student_id  --->  subjects
10          --->  [Math, Science]
20          --->  [Math, English]
30          --->  [English, French]

我想按个别科目分组,也就是说,我想计算所有学生所学科目的数量。所以我的预期结果是

Math     ---> 2
Science  ---> 1
English  ---> 2
French   ---> 1

我听说过 unnest 数组,但无法获得此结果。
我该如何处理这个问题?

wdebmtf2

wdebmtf21#

我想你只需要 unnest :

select subject, count(*)
from t cross join
     unnest(subjects) as u(subject)
group by subject;

相关问题