Seleção de tabelas IV

Além dos critérios até agora explicados para realizar as consultas em tabelas, SQL permite também aplicar um conjunto de funções pré-definidas. Estas funções, embora sejam básicas, podem nos ajudar em alguns momentos a expressar nossa seleção de uma maneira mais simples sem ter que recorrer a operações adicionais por parte do script que estivermos executando.

Algumas destas funções são representadas na seguinte tabela:

Função Descrição
Soma(campo) Calcula a soma dos registros do campo especificado
Avg(Campo) Calcula a média dos registros do campo especificado
Count(*) Proporciona o valor do número de registros que foram selecionados
Max(Campo) Indica qual é o valor máximo do campo
Min(Campo) Indica qual é o valor mínimo do campo

Dado que o campo da função não existe no banco de dados, pois o estamos gerando virtualmente, isto pode criar inconvenientes quando estivermos trabalhando com nossos scripts na hora de tratar seu valor e seu nome de campo. É por isso que o valor da função tem que ser recuperada a partir de um apelido que nós especificaremos na sentença SQL a partir da instrução AS. A coisa poderia ficar assim:

Select Soma(total) As soma_pedidos From pedidos

A partir desta sentença calculamos a soma dos valores de todos os pedidos realizados e armazenamos esse valor em um campo virtual chamado soma_pedidos que poderá ser utilizado como qualquer outro campo por nossas páginas dinâmicas.

Obviamente, tudo que foi visto até agora pode ser aplicado neste tipo de funções de modo que, por exemplo, podemos estabelecer condições com a cláusula Where construindo sentenças como esta:

Select Soma(quantidade) as soma_artigos From pedidos Where id_artigo=6

Isto nos proporcionaria a quantidade de exemplares de um determinado livro que foram vendidos.

Outra propriedade interessante destas funções é que permitem realizar operações com vários campos dentro de um mesmo parênteses:

Select Avg(total/quantidade) From pedidos

Esta sentença dá como resultado o preço médio que estão sendo vendidos os livros. Este resultado não tem porquê coincidir com o do preço médio dos livros presentes no inventário, já que, pode ser que as pessoas tenham tendência a comprar os livros caros ou os baratos:

Select Avg(precio) as preco_venda From artigos

Uma cláusula interessante no uso das funções é Group By. Esta cláusula nos permite agrupar registros aos quais vamos aplicar a função. Podemos por exemplo calcular o dinheiro gastado por cada cliente:

Select id_cliente, Soma(total) as soma_pedidos From pedidos Group By id_cliente

Ou saber o número de pedidos que foram realizados:

Select id_cliente, Count(*) as numero_pedidos From pedidos Group By id_cliente

As possibilidades como vemos são numerosas e pode ser práticas. Agora tudo fica à disposição de nossas ocorrências e imaginação.

Fonte: http://www.criarweb.com/artigos/596.php

Deixe um comentário