Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

alberto_il

Agrupando Registros Semelhantes e listando os TOP 20

Recommended Posts

Olá,Tenho um Coluna X em uma Tabela Y, com o conteudo semelhante ao mostrado abaixo:X---------------------/app/sgm/html/001/normativas/cat/no00136c001s.htm/app/sgm/html/001/productos/cas/fp01247e001c.htm/app/sgm/html/001/normativas/cat/no00137c001s.htm/app/sgm/html/001/productos/cas/fp01248e001c.htm/app/sgm/html/001/normativas/cat/no00139c001s.htm/app/sgm/html/001/productos/cas/fp01249e001c.htm/app/sgm/html/001/normativas/cat/no00140c001s.htm/app/sgm/html/001/productos/cas/fp01250e001c.htm/app/sgm/html/001/normativas/cat/no00141c001s.htm/app/sgm/html/001/productos/cas/fp01251e001c.htmEle contem alguns milhões de registro e preciso agrupar os registro semelhantes (isto é, identificar quais são as partes identicas que se repetem) e indicar os TOP 20.Exemplo:/app/sgm/html/001/productos/cas/ - count = 135.000/app/sgm/html/001/normativas/cat/ - count = 99.000...Agradeço desde já,Alberto

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Motta,Não acho que este exemplo se aplica para encontrar/agrupar sub-strings repetidas em um campo. Será que você teria outra ideia ?Grato,Alberto

Compartilhar este post


Link para o post
Compartilhar em outros sites

select y,rownum 
from
(select y,count(*) qtd
from x
group by y
order by 2 desc)
where rownum <= 20

Não garente todavia os 20 maiores pois se dois registros empatarem

esta query não trata.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Motta,Desculpe me pela inscistencia, mas, esta query agrupa os registros iguais (coluna Y) e nao os registros que contrem sub-strings / pedaços iguais na Coluna Y.Grato,Alberto

Compartilhar este post


Link para o post
Compartilhar em outros sites

use substr e instr

 

select y,rownum 
from
(select substr(y,1,instr(y,'/',-1) -1) y,count(*) qtd
from x
group by substr(y,1,instr(y,'/',-1) -1)
order by 2 desc)
where rownum <= 20

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.