Ir para conteúdo

Arquivado

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

wawaanjo

Rownun

Recommended Posts

Srs.

 

 

Em minha query estou buscando os campos (de uma única tabela) que são:

Produto,

Tipo_Erro --- (EC, ENC) somente esses dois valores

Descrição, -- Descrição do erro

Quantidade -- Quantas vezes esse erro foi cometido para determinado produto

 

Preciso buscar somente os 10 erros mais cometidos por produto e por tipo de erro.

 

Exemplo:

Produto A teve 13 erros EC e 22 erros ENC

Produto B teve 32 erros EC e 19 erros ENC

 

-> Para o produto A tem que trazer somente os 10 erros EC mais cometidos (vou ter isso na coluna Qtde)

e os 10 erros ENC mais cometidos, desprezando os demais

 

Da mesma forma, para o produto B, somente os 10 erros EC mais cometidos e os 10 erros ENC mais cometidos.

 

 

Como posso estar fazendo isso? Colocando somente rownun vai fazer os 10 primeiros de tudo, mas eu preciso os 10 mais cometidos EC e ENC por produto.

 

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça um query contando por tipo, use esta query como uma tabela virtual e teste seca coluna do count e maior que 10.

 

Estou digitando num tablet, impossivel dditar se nao conseguir amanhã posto o sql.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá. Tentei dessa forma, mas sem mto conhecimento do row_number e portanto não funcionou

 

SELECT ANO,
MES,
PRODUTO,
TIPO_ERRO,
DESCRICAO,
QTDE
FROM (
SELECT ANO,
MES,
PRODUTO,
TIPO_ERRO,
DESCRICAO,
COUNT(*) QTDE
FROM TABELA
group by MES, NOME_FORMULARIO, ANO, NOME_SESSAO, ITEM_PONTUADO
ORDER BY 1,2,3,4,6 DESC
)
ROW_NUMBER() OVER (PARTITION BY PRODUTO, TIPO_ERRO ORDER BY QTDE DESC)
;

 

Alguém poderia dar um help com isso

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Erro de Sintax.

Não conheço muito a utilização do Row_number no Oracle (por sempre trabalhar com outro banco)

 

Na minha sub-query estou quantificando os erros por tipo e por produto.

E com isso consigo visualizar os 10 mais cometidos por produto e por tipo de erro (EC e ENC), porém eu não estou conseguindo buscar SOMENTE os 10 primeiros de cada produto e de cada tipo.

 

Imagino que c/ o row_number isso seja possível, mas não consegui fazer isso

 

Poderia me ajudar

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em Oracle é ROWNUM.

 

Estou num tablet , amanha dou uma olhada nesta query.

Compartilhar este post


Link para o post
Compartilhar em outros sites

--Contando

 

 

SELECT  ANO,
              MES,
              PRODUTO,
              TIPO_ERRO,
              DESCRICAO,
              COUNT(*) QTDE
      FROM TABELA
      group by MES, NOME_FORMULARIO, ANO, NOME_SESSAO, ITEM_PONTUADO

-- maiores

 

 

select *

from

(

SELECT  ANO,
              MES,
              PRODUTO,
              TIPO_ERRO,
              DESCRICAO,
              COUNT(*) QTDE
      FROM TABELA
      group by MES, NOME_FORMULARIO, ANO, NOME_SESSAO, ITEM_PONTUADO)

where qtd >= 10 

Creio ser isto

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.