claudiogeop 0 Posted November 27, 2020 Report Share Posted November 27, 2020 Boa tarde pessoal, sou novato no PostgreSQL e gostaria de uma ajuda se possível. Preciso de um SELECT onde me retorne o que mais se repete em uma linha, vamos supor: coluna_descricao coluna_resultado_select bom,ruim,ótimo,regular,ruim,ruim,ótimo,regular ruim ruim,ótimo,regular,ótimo ótimo regular,bom,regular,ruim,regular,ótimo regular ... ... Alguém pode me ajudar? Abraço! Cláudio Quote Link to post Share on other sites
0 Sergio Alves 0 Posted November 28, 2020 Report Share Posted November 28, 2020 Observe a consulta abaixo: SELECT CODSUBGRUPO, COUNT(*) AS QUANTIDADE, CASE WHEN COUNT(*) < 298 THEN 'RUIM' WHEN COUNT(*) > 297 AND COUNT(*) < 595 THEN 'REGULAR' WHEN COUNT(*) > 594 AND COUNT(*) < 892 THEN 'BOM' WHEN COUNT(*) > 891 THEN 'ÓTIMO' END AS NOTA FROM C000025 GROUP BY CODSUBGRUPO HAVING COUNT(*) > 1 -> Está bem próximo do que você está querendo. Todavia, eu já sabia que a maior contagem de CODSUBGRUPO é 1.190. Sendo 4 as faixas de resultado (RUIM, REGULAR, BOM e ÓTIMO), fiz o cálculo abaixo: 1.190 / 4 = 297,5. Estabeleci o valor 297 para cada faixa e fiz a atribuição às faixas no CASE que cabe a cada parte. Para ter um resultado ideal, essa consulta deveria estar dentro de uma STORED PROCEDURE para poder separar as contagens de cada faixa (RUIM, REGULAR, BOM e ÓTIMO) e, ao final, exibir o resultado. Quote Link to post Share on other sites
0 claudiogeop 0 Posted December 1, 2020 Author Report Share Posted December 1, 2020 Muito bom Sergio, como você disse esta bem próximo daquilo que desejo. Agradeço pela ajuda! Quote Link to post Share on other sites
Question
claudiogeop 0
Boa tarde pessoal, sou novato no PostgreSQL e gostaria de uma ajuda se possível.
Preciso de um SELECT onde me retorne o que mais se repete em uma linha, vamos supor:
coluna_descricao coluna_resultado_select
bom,ruim,ótimo,regular,ruim,ruim,ótimo,regular ruim
ruim,ótimo,regular,ótimo ótimo
regular,bom,regular,ruim,regular,ótimo regular
... ...
Alguém pode me ajudar?
Abraço!
Cláudio
Link to post
Share on other sites
2 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.