数组 – postgres:如何在给定条件的情况下计算数组列中的不同元
发布时间:2020-12-13 16:00:09 所属栏目:百科 来源:网络整理
导读:我有一个如下表: ID array1 array27333 | {615593} | {NULL}7333 | {2013682} | {NULL}7333 | {26573,1508291} | {NULL}7333 | {1457957} | {NULL}7333 | {NULL} | {1063105}7333 | {NULL} | {107978,408431} 我期待查询每个edge_id的array1和array2的所有
我有一个如下表:
ID array1 array2 7333 | {615593} | {NULL} 7333 | {2013682} | {NULL} 7333 | {26573,1508291} | {NULL} 7333 | {1457957} | {NULL} 7333 | {NULL} | {1063105} 7333 | {NULL} | {107978,408431} 我期待查询每个edge_id的array1和array2的所有唯一项.例如 ID array1_distinct array2_distinct 7333 5 3 我尝试过类似下面的内容 SELECT id,array1_count FROM ( SELECT id,COUNT(DISTINCT((CASE WHEN array1 is not null THEN (select unnest(array1)b) END)) as array1_count FROM mytable GROUP BY id ) totals limit 1 我总是会遇到错误,例如“用作表达式的子查询返回的多行”和“在使用unfst时尝试计算数组中的元素时在上下文中调用的集值函数”. 解决方法select id,count(distinct a1) as a1,count(distinct a2) as a2 from ( select id,unnest(array1) as a1,unnest(array2) as a2 from t ) s group by id (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |