COUNT, SUM, etc.

COUNT, SUM, etc.

por Gabriel Ribeiro -
Número de respostas: 1

Pessoal, sobre os exercicios da ultima lista estou tendo dificuldades para resolver os que necessitam dessas funções de agregações.
Eu consigo utilizar em SQL mas em algebra relacional não estou tendo exito, rs.

Alguém teria alguma dica e/ou material para indicar?

 

Muito obrigado.

Em resposta à Gabriel Ribeiro

Re: COUNT, SUM, etc.

por Kelly Rosa Braghetto -

Oi, Gabriel.

No RELAX, para fazer agrupamentos e agregações, a gente usa o operador chamado gamma (γ) na ferramenta. Exemplos de uso do gamma:

 
1)  A consulta abaixo lista a quantidade total de peças existentes na relação PECA: 

γ count(codp) -> quantas_pecas (PECA)
 
A resposta dessa consulta é uma relação com um único atributo, ao qual demos o nome de "quantas_pecas". O gamma (γ) do RELAX nos obriga a atribuir um nome para o atributo que armazenará o resultado da operação de agregação. Por isso há esse "-> quantas_pecas" na consulta.  
 
2) Para cada cor de peça que aparece na relação PECA, a consulta abaixo mostra a quantidade de peças existentes no BD na referida cor.
    Ou seja, ela agrupa as tuplas de PECA segundo o atributo "cor", e para cada grupo (cor), ela calcula a quantidade de peças existente.

γ cor; count(codp) -> quantas_pecas (PECA)

 
A sintaxe do operador gamma é um pouco diferente daquele "F script" que vimos na aula porque:
- os atributos para agrupamento também ficam do lado direito do operador (antes das funções de agregação). No "F script" elas ficam à esquerda.
- é necessário renomear o atributo resultante de uma agregação.
 
Apesar desas diferenças na sintaxe,  o funcionamento do gamma é exatamente igual ao do "F Script" que vimos no aula.
 

Até mais,

Kelly