Página 1 de 1
DISTINCT - GROUP BY
Enviado: Qua, 05 Mar 2008 4:15 pm
por Dulima-SP
Senhores...
Me deparei hj com as Seguintes Situações..
DISTINCT - GROUP BY
Qual a Diferença deles, pois os dois me Trazem o mesmo Resultado???
Se possivel, mencionar outra query...
Codigo1
Codigo 2
Valeu Galera..
Enviado: Qua, 05 Mar 2008 4:46 pm
por gokden
seguindo este exemplo seu, eles não tem diferença mesmo...
mais se você tentar assim...
ou assim
vai ver qui não é o mesmo resultado mais....
e também qui o codigo 2 não funcionará....
o distinct ele trais o campos distintos, mais quando possui um valor diferente ele já trais outra linha...
o group by é uma coisa um pouco mais complicada, qui eu não vou conseguir explicar =D
mais eu vou procurar uma definição aqui e já posto.... =D
Enviado: Qua, 05 Mar 2008 4:56 pm
por Dulima-SP
entendo amigo...
mais se você colocar o Script Assim vai....
Ate onde eu Sei, todo GROUP BY precisa ter os Campos do Select...
Agradeço gokden a Colaboração ....
mais a Duvida perciste!!!
Enviado: Qua, 05 Mar 2008 5:01 pm
por gokden
Sim mais a função do group by, é agrupar as linhas do select...
é qui faiz poco tempo qui eu intendi o group by =x
por isso qui não sei explicar muito bem...
até um tempo atrás eu montava o select e ia colocando os campos no group by até dar certo =D
vou postar o que eu achei aqui, ai você pode postar suas duvidas...
Criando Grupos de Dados: Cláusula GROUP BY
Selecionar tudo
SELECT column, group_function(column)
FROM table
[WHERE condition]
[GROUP BY group_by_expression]
[ORDER BY expr];
Você pode utilizar a cláusula GROUP BY para dividir as linhas de uma tabela em grupos. Você pode então utilizar as funções de grupo para devolver informação sumarizada para cada grupo.
Sintaxe: group_by_expression especifica as colunas cujos valores determinam a base para o agrupamento das linhas.
Diretrizes
* Se você incluir uma função de grupo em uma cláusula SELECT, você não pode selecionar resultados individuais a menos que a coluna individual apareça na cláusula GROUP BY. Você receberá uma mensagem de erro caso não inclua a coluna na lista.
* Utilizando a cláusula WHERE, você pode excluir linhas antes de fazer a divisão dos grupos.
* Você deve incluir as colunas na cláusula GROUP BY.
* Você não pode utilizar o alias de uma coluna na cláusula GROUP BY.
* Por default, as linhas são classificadas em ordem ascendente das colunas incluídas na lista da cláusula GROUP BY. Você pode sobrepor esta ordenação utilizando a cláusula ORDER BY.
Exemplo:
Enviado: Qua, 05 Mar 2008 5:16 pm
por Dulima-SP
Resumindo....
as Funções
Count
Sum
Max
AVG
....
So podem ser utilizadar com o TAL group by.....
e o distinct cria um "GRUPO" mais sem essas Funções...
CERTO????
Enviado: Qua, 05 Mar 2008 5:54 pm
por gokden
pelo qui eu intendi....
o distinct, tansforma as linhas identicas em uma linha só
e o group by agrupa os campos quando você usa o SUM, AVG, MAX, MIN (funções de grupo) para você agrupar por alguma coisa...
ex: Eu quro saber a soma total do campo SAL da tabela EMP
agora eu quero saber a soma do SAL de cada DEPTONO da tabela EMP. intendeu ??
Enviado: Qua, 05 Mar 2008 6:01 pm
por Dulima-SP
Entendi Cara....
Valeu....
Vou Brincar com esses comandos...
qualquer coisa eu posto....
valeu Mesmo!!