O parâmetro GROUP BY é muito interessante, pois nos permite agrupar
resultados de acordo com qualquer elemento presente na tabela. Isso nos permite uma análise muito mais apurada
dos dados. Para demonstrar seu funcionamento, vamos popular nossa tabela "aluga", que de todas as criadas neste
minicurso é a única que ainda não possui dados.
Vamos relembrar, através do comando "desc aluga", a estrutura que esta tabela possui, para que possamos fazer a inserção
de dados nela:
Ela possui as colunas CPF, que é uma chave estrangeira da tabela "cliente". A coluna
codigo, que é chave estrangeira do código contido na tabela "filme". E a coluna data, que armazena a data da locação do filme. Vou inserir os seguintes dados:
INSERT INTO aluga VALUES ("123321123-33", 2, "2011-12-01");
INSERT INTO aluga VALUES ("123321123-33", 1, "2011-12-01");
INSERT INTO aluga VALUES ("123321123-33", 3, "2011-12-01");
INSERT INTO aluga VALUES ("756398336-20", 3, "2011-12-03");
INSERT INTO aluga VALUES ("756398336-20", 6, "2011-12-03");
INSERT INTO aluga VALUES ("756398336-20", 5, "2011-12-01");
INSERT INTO aluga VALUES ("756398336-20", 1, "2011-12-01");
INSERT INTO aluga VALUES ("389476625-11", 1, "2011-12-01");
Agora nossa tabela "aluga" contém os seguintes dados:
Agora vamos imaginar que quiséssemos saber quantos filmes cada um dos clientes alugou. Você talvez tenha pensado em fazer um SELECT COUNT, mas veja o que acontece se fizermos isso:
O sistema nos retornou todas as pessoas que já alugaram filmes. Sabemos, portanto, que foram 8 locações, mas quantos
clientes estão presentes nestas 8 locações não é possível saber. Isso acontece porque os CPFs não estão agrupados, ou
seja, não é possível contá-los separadamente. É aí que o GROUP BY vai atuar, criando pequenos
grupos de cada CPF, para que possamos efetuar a contagem dessa forma. É mais simples do que parece,
vejam:
SELECT count(cpf) AS 'Qtde de Filmes Alugados', cpf AS CPF FROM aluga GROUP BY (cpf);
Vejam só que bacana, o comando nos retornou exatamente o que queríamos. Vamos interpretar esse comando. Estamos
pedindo ao SGBD o seguinte:
Conte os CPFs e exiba-os com o rótulo de “Qtde de Filmes Alugados”, exiba também a coluna
"cpf" com o rótulo de CPF, ambos da tabela "aluga", AGRUPADOS POR CPF.
É esse GROUP BY(cpf) que permite a contagem correta dos filmes alugados a partir dos seus
CPF.
Poderíamos ainda fazer um INNER JOIN e exibir os nomes dos clientes, vejam que interessante:
SELECT count(aluga.cpf) AS 'Qtde de Filmes Alugados', aluga.cpf AS CPF, nome AS Cliente FROM
aluga INNER JOIN cliente ON cliente.cpf=aluga.cpf GROUP BY (cpf);
E o retorno seria:
Espero que tenha ficado claro qual a função desse importante parâmetro, que é o GROUP BY.
HARDWARE
Entendendo o seu computador
O que há dentro do meu computador?
Existem alguns componentes fundamentais presentes dentro do seu computador e é muito importante que você conheça um pouco sobre eles, seja para argumentar com algum vendedor durante a compra de um novo PC ou para identificar alguma atitude desleal de algum técnico que esteja te passando um orçamento para reparo. Na seção Raio-X aqui do Contém Bits você pode conhecer e entender mais detalhadamente sobre cada componente, ou também pode clicar abaixo no componente que deseja, para conhecê-lo melhor.
Você Sabia?
Ultima Online

Criar um jogo é muito mais complexo do que parece. São milhares, às vezes, milhões de linhas de código. Isso não é exagero! Apenas o jogo Ultima Online possui 6.006.313 linhas de programação, totalizando 25.103.295 palavras
Pac Man

Apenas no ano de 1982, o clássico Pac Man vendeu mais de 400 mil máquinas de fliperama em todo o mundo e recebeu cerca de 7 bilhões de moedas nestas máquinas. Saiba mais.
Mouse

O mouse foi criado em 9 de dezembro de 1968, por um americano chamado Douglas Engelbart, que o batizou de "XY Position Indicator for a Display System". Conheça a história do mouse clicando aqui.
Senhas

Digitar senhas em computadores de uso coletivo é extremamente perigoso, pois além de softwares de monitoramento, existem dispositivos de hardware que podem capturar suas senhas. Evite ao máximo acessar sites de bancos a partir destes computadores. Veja mais aqui.
Asteroids

O título Asteroids, do Atari, possui recorde de pontuação há 30 anos. Em 1982 um americano chamado Scott Safran atingiu a marca de 41.336.440. Atualmente ele faz parte de um minúsculo grupo de jogadores que conseguiram manter seus recordes por mais de 30 anos.










