-
Notifications
You must be signed in to change notification settings - Fork 6
Home
Peter edited this page Nov 4, 2017
·
6 revisions
Welcome to the prenomes wiki!
Usar SQL
soma fixa
SELECT ($1->>$2)::bigint + ($1->>($2+1))::bigint + ($1->>($2+2))::bigint
+ ($1->>$2+3)::bigint + ($1->>($2+4))::bigint + ($1->>($2+5))::bigint
+ ($1->>$2+6)::bigint + ($1->>($2+7))::bigint + ($1->>($2+8))::bigint
$f$ LANGUAGE SQL IMMUTABLE;
CREATE or replace FUNCTION lib.sum_jarray(
p_j JSONb,
p_ini int,
p_fim int
) RETURNS bigint AS $f$
DECLARE
i int;
tsum bigint :=0;
BEGIN
i:=p_ini;
LOOP
EXIT WHEN i = p_fim;
tsum := tsum + ($1->>i)::bigint
i := i + 1 ;
END LOOP ;
RETURN tsum;
END ;
$$ LANGUAGE plpgsql;
select lib.sum_jarray(c,1,10) FROM dataset.big WHERE big.source = dataset.idconfig('ibge_censolast_nomes'::text);
CREATE EXTENSION fuzzystrmatch;
select metaphone(nome,10), count(*) as n from dataset.vw_ibge_censolast_nomes where ate2010>100000 group by 1 order by 1;
Uso do LIKE no SQL mostra que é inviável, exeto se definir limite superior, ou abordar apenas casos com raízes mais longas. A raiz "an" por exemplo retorna mais de 1000 nomes.
raiz_pop,nome
an,ANA
an,ANALICE
an,ANE
an,ANITA
an,ANNA
mari,MARI
mari,MARIA
maria,MARIAH
mari,MARINA
mari,MARINE
mari,MARIANA
mari,MARINEIDE
mari,MARIO
regian,REGIANE
regian,REGIANNE
regin,REGINA
regin,REGINALDO
regin,REGINALDA