Vamos dar uns toques de SQL? V
Por Pedro Gaspar para o PPLWARE
Depois de termos aprendido algumas das funções mais básicas de sql, esta semana vamos aprender a agrupar resultados utilizando o DISTINCT e o GROUP, alem disso também vamos aprender a contar os resultados obtidos com recurso ao COUNT
Para apresentar alguns exemplos utilizei a tabela que temos vindo a usar nas ultimas semanas com os seguintes dados:
Por vezes temos dados repetidos na nossa tabela e queremos que eles apareçam apenas uma vez na listagem, pois esta semana vamos aprender duas formas de o fazer Começando pelo DISTINCT
Sintaxe de Utilização
SELECT DISTINCT nome_coluna(s) FROM nome_tabela |
O DISTINCT é a forma mais simples de o fazer, mas também podemos utilizar o GROUP Sintaxe de Utilização
SELECT nome_coluna(s) FROM nome_tabela GROUP BY coluna1 [, coluna2, coluna3] |
Nada melhor para explicar todo o conceito do que utilizar alguns exemplos:
EXEMPLO1 Objectivo: Apresentar a lista de cores de cabelo Query utilizando o DISTINCT:
SELECT DISTINCT cor_cabelo FROM `tbl_ppware` |
Query utilizando o GROUP:
SELECT cor_cabelo FROM `tbl_ppware` GROUP BY cor_cabelo |
Resultado:
Apesar de as duas funções apresentarem o mesmo resultado o seu funcionamento e totalmente diferente, sendo que com o GROUP conseguimos fazer queries muito mais complexas do que com o DISTINCT.
Vamos agora aprender a função COUNT para mais à frente utiliza-la em conjunto com o DISTINCT e o GROUP O COUNT permite-nos contar o numero de registos de uma determinada coluna.
Sintaxe de utilização
SELECT COUNT(nome_coluna) FROM nome_tabela |
EXEMPLO2 Objectivo: Apresentar o numero de registos que estão na tabela tbl_pplware Query:
SELECT COUNT( * ) FROM `tbl_ppware` |
(como não queremos seleccionar nenhum campo em particular podemos utilizar o ‘*’, mas poderíamos ter utilizado um campo qualquer para o efeito) Resultado:
Para não aparecer ‘COUNT(*)’ no nome do campo da query que acabamos de fazer podemos utilizar o AS de forma a dar o nome que quisermos ao campo, vejamos o mesmo exemplo mas utilizando o AS Query:
SELECT COUNT( * ) AS total FROM `tbl_ppware` |
Resultado:
EXEMPLO3 Objectivo: Apresentar o numero das diferentes cores de cabelo existentes Query:
SELECT COUNT( DISTINCT cor_cabelo ) AS cores FROM `tbl_ppware` |
Resultado:
EXEMPLO4 Agora vamos juntar tudo o que aprendemos até este ponto. Objectivo: Apresentar as cores de cabelo existentes e ao mesmo tempo mostrar quantas vezes existe cada uma Query:
SELECT cor_cabelo, COUNT( * ) AS total FROM `tbl_ppware` GROUP BY cor_cabelo |
Resultado:
Espero que tenham gostado da explicação sobre sql desta semana, para a semana há mais.
Este artigo tem mais de um ano
Mais um excelente artigo Pedro. Parabéns !!
yep 🙂
Façam uma listagem de todos o comandos em SQL e para que servem, e posteriormente e que começavam com os exemplos.
espero também comandos para interagir com bases de dados espaciais.
Algo como um guia rápido de comandos sql seria realmente interesante
“interessante”
caramba… se arranjarem a base de dados, isto é que ia ser… fazer querys pra ver as estrelas e coisas assim parecidas!!! lol hehe
lol
Fazer assim como nas extensões do Chrome fica bem organizado e de fácil acesso aos outros Tutoriais.
Michael Douglas
Brasil!
Olá
Tenho uma tabela com:
Referencia – Qtd – Causa
1234567 2 A
1111111 1 C
2222222 5 B
1234567 3 B
1234567 1 A
1111111 3 A
Preciso de fazer uma tabela por referencia, causa, quantidade, isto é:
Referencia – Qtd – Causa
1111111 3 A
1111111 1 C
1234567 3 A
1234567 3 B
Alguém me dá uma ajuda?
create table nova_tabela as (select Referencia, Qtd, Causa order by Referencia, Causa, qtd) with data
Adorei o post, me ajudou muito. thanx.