Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Não consigo agrupar dados por data

Boa noite!

Objetivo: "Gerar consulta da quantidade de alterações realizadas. agrupando os dados por ANO e NOME DE SISTEMA. Apresentando as seguintes informações: Quantidade de alterações, ano de alteração e o nome do sistema."

Colunas da tabela:

Coluna 1:

Nome: DATA_HORA_ALTERACAO Tipo: TIMESTAMP(6)

Coluna 2:

Nome: NOME_SISTEMA Tipo: VARCHAR2(255 CHAR)

Fiz essa DQL:

SELECT NOME_SISTEMA, COUNT(*) AS QTDE
FROM TBS_ENTITY_REVISAO_LOG 
GROUP BY NOME_SISTEMA;

Essa DQL retornar os resultados, porém não da forma ordenada somente por ano.

SELECT NOME_SISTEMA,  COUNT(*) AS QTDE
FROM TBS_ENTITY_REVISAO_LOG 
GROUP BY NOME_SISTEMA, DATA_HORA_ALTERACAO;

O que devo fazer para que os resultados sejam agrupados também por data, exclusivamente por ano?

3 respostas

Se eu entendi corretamente, a consulta para responder a sua pergunta ficaria assim:

SELECT YEAR(DATA_HORA_ALTERACAO) as ano, NOME_SISTEMA,  COUNT(*) AS QTDE
FROM TBS_ENTITY_REVISAO_LOG 
GROUP BY NOME_SISTEMA, YEAR(DATA_HORA_ALTERACAO) 
ORDER BY YEAR(DATA_HORA_ALTERACAO)

Apresentou este erro:

ORA-00904: "YEAR": identificador inválido
00904. 00000 -  "%s: invalid identifier"
*Cause:    
*Action:
Erro na linha: 4 Coluna: 10
solução!

Conseguir a fazer a consulta que queria usando isto:

SELECT TO_CHAR(DATA_HORA_ALTERACAO,'yyyy') as ANO, NOME_SISTEMA,  COUNT(*) AS QTDE
FROM TBS_ENTITY_REVISAO_LOG 
GROUP BY NOME_SISTEMA, TO_CHAR(DATA_HORA_ALTERACAO,'yyyy');