sexta-feira, 16 de outubro de 2020

Estudando para o exame de certificação Oracle Database SQL | 1Z0-071 - Utilizando funções de agrupamento/ Agrupando dados.


Fala, galera. Tudo bem?

Hoje vou falar um pouco sobre algumas funções de agrupamento de dados, funções essas que são extremamente utilizadas no dia a dia do programador Oracle.

Separei algumas delas, as quais julguei mais importante pra gente falar um pouco.


AVG => Retorna o valor médio de um conjunto de valores
COUNT => Retorna a quantidade de linhas de uma consulta
MAX => Retorna o valor máximo de (X)
MIN => Retorna o valor mínimo de (X)
SUM => Retorna a soma de (X)


Evidencia da tabela que utilizarei no decorrer dos estudos.










AVG

Vamos começar falando da função AVG, essa função retorna o valor médio da coluna selecionada, note que o banco efetua o agrupamento e devolve a média, no caso do exemplo abaixo, eu estou trazendo a média do campo vl_salario, a função efetua a soma de todos os valores e após isso divide pela quantidade de registros.


SELECT AVG(vl_salario) media
  FROM funcionarios;









COUNT

Essa função faz a conta da quantidade de registros em uma determinada consulta.
Abaixo segue exemplo da utilização da função p/ verificar a quantidade de registros existentes na tabela.

SELECT COUNT(1)
  FROM funcionarios;










MAX e MIN

Como os próprios nomes já sugerem, utilizamos as funções acima p/ retornar um valor máximo, ou mínimo de um conjunto de dados. Abaixo, efetuarei uma consulta p/ retornar o maior/ menor salários
cadastrados na tabela:


SELECT MAX(vl_salario) maior_salr
               ,MIN(vl_salario) menor_salr
   FROM funcionarios  










O MIN e o MAX também podem ser utilizados com caracteres, onde o banco fará a busca utilizando o fator de ordem alfabética p/ recuperar o Mínimo e o Máximo. P/ campos de datas, vai considerar a menor(MIN) e a maior como (MAX).


SELECT MAX(dt_contratacao) min_dt
      ,MIN(dt_contratacao) max_dt
      ,MIN(nm_func) min_nm
      ,MAX(nm_func) max_nm
      ,MIN(nm_departamento) Min_dept
      ,MAX(nm_departamento) MAX_dept
  FROM funcionarios;











SUM

Efetua a somatória de uma determinada coluna, no caso abaixo, estou efetuando a soma da coluna salario, de todos os registros da tabela.

SELECT SUM(vl_salario) soma
  FROM funcionarios 




Agora vamos falar um pouco sobre como agrupar esses dados, falaremos da clausula GROUP BY e da clausula HAVING.

GROUP BY

Utilizamos essa clausula quando se faz necessário o agrupamento de dados de colunas em comum.
Suponhamos que eu queira saber a quantidade de funcionários contratados por ano, pra isso utilizamos o GROUP BY, onde combinamos o agrupamento + as funções de grupo, exemplo:

No SELECT abaixo, eu formatei o campo de data p/ mostrar apenas o ano, efetuei o agrupamento por essa coluna, e inseri a função COUNT para contar os registros.

SELECT to_char(dt_contratacao, 'rrrr') ano, 
               COUNT(1) qt_contratados
  FROM funcionarios 
 GROUP BY to_char(dt_contratacao, 'rrrr')






HAVING

Essa clausula é utilizada quando existe a necessidade de filtrarmos o resultado dos agrupamentos, a mesma é inserida após o GROUP BY, no exemplo abaixo, selecionarei apenas os registros onde o numero de contratados é maior do que 1.

SELECT to_char(dt_contratacao, 'rrrr') ano, 
       COUNT(1) qt_contratados
  FROM funcionarios 
 GROUP BY to_char(dt_contratacao, 'rrrr')
 HAVING COUNT(1) >1



A clausula HAVING pode ser utilizada com outras funções de grupo, abaixo mais um exemplo de utilização do GROUP BY + HAVING, agora utilizando a função AVG. No SELECT abaixo, estou trazendo a media salarial dos funcionários contratados no ano, e filtrando apenas as medias maiores do que 5000.

SELECT to_char(dt_contratacao, 'rrrr') ano, 
               AVG(vl_salario) media
  FROM funcionarios 
 GROUP BY to_char(dt_contratacao, 'rrrr')
 HAVING AVG(vl_salario)> 5000


















Espero que tenham gostado, 

Até a próxima.


Leonardo Silva.

Nenhum comentário:

Postar um comentário

Estudando para o exame de certificação Oracle Database SQL | 1Z0-071 - Comando Merge

Fala, galera. Tudo bem? Hoje vou falar um pouco sobre o comando MERGE. O MERGE é um comando DML que combina as funções de insert, update e d...