Olá pessoal, depois de muito tempo sem postar estou aqui mais uma vez.
Hoje vou esclarecer o funcionamento das cláusulas Order by e Group by do SQL. Ambos os comandos são utilizados para aprimorar o resultado de sua pesquisa SQL.
Usado pelo comando SELECT, estes dois comandos fazem respectivamente, uma ordenação dos resultados e um agrupamento deles. Podendo até serem usados ao mesmo tempo.
O Order by é bem simples de entender. Como o próprio nome já diz, ele cria uma ordem nos resultados do SELECT. Vamos ao exemplo:
Código:
select nome, idade from tab_clientes
O comando acima trará os resultados na ordem em que foram cadastrados, pois não impomos nenhuma condição específica para ordem nos resultados.
Digamos que você quer essa mesma lista ordenada por nome alfabéticamente
Código:
select nome, idade from tab_clientes order by nome
Ainda podemos personalizar o resultado. Para mostrar os resultados de A-Z (Ascendente) utilizamos o comando ASC no final da instrução. Para mostrar os resultados de Z-A (Descendente), utilizamos o comando DESC no final da mesma. Exemplos:
De A-Z
Código:
select nome, idade from tab_clientes order by nome ASC
De Z-A
Código:
select nome, idade from tab_clientes order by nome DESC
Até que não é tão difícil. Vamos agora ao Group by.
O Group by é simples também, ele fica complexo quando utilizado em conjunto com outros elementos em grnades funções.
Vamos supor uma lista de emails, onde há endereços repetidos. Você quer visualizar a lista com todos os emails sem exibir os resultados duplicados ou triplicados.
Código:
select email from tab_emails group by email
Você pode utilizar a função Group by em vários sistemas que for desenvolver. Um belo exemplo seria um sistema de agenda de eventos, onde existem datas repetidas, porém você quer ordenar, por exemplo:
Citação:
- Data do evento
-- Evento 01
-- Evento 02
-- Evento 03
- Data do evento
-- Evento 01
-- Evento 02
Para exibir o resultado acima, o procedimento é simples. Fazemos um select utilizando o group by pra data e um looping com outro select chamando os eventos que possui a data do primeiro select.
É isso aí pessoal. Fica a dica, que acredito ser valida para muitos programadores que utilizam o comando SQL.
Abraços, até a próxima.