我需要找到一种方法从PostgreSQL中的数组中确定最常见的子字符串。
我在PostgreSQL的一个列中有一个单维数组,它存储CPV值(一个嵌套的分类词汇表- https://simap.ted.europa.eu/cpv)。这些代码由数字字符组成,但作为varchar存储,因为某些记录具有前导零,如下所示:
["45331110", "50721000", "45251250", "42160000", "39715000", "45315000", "09323000", "71321200", "45331100", "50720000"]
我想使用PostgreSQL从这个数组中提取最常见的两位数字,在示例中是45。
发布于 2020-08-03 17:04:31
这个查询可以满足您的需要。
select substr(t, 1, 2) mc
from unnest(array['45331110', '50721000', '45251250', '42160000', '39715000', '45315000', '09323000', '71321200', '45331100', '50720000']) t
group by mc
order by count(1) desc
limit 1;结果:
Name|Value|
----|-----|
mc |45 |您可以使用上面的thie作为子查询来提取每行最常见的子字符串。
https://stackoverflow.com/questions/63233614
复制相似问题