Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

etspaz

[Resolvido] group by e avg()

Recommended Posts

boa tarde pessoal,

eu já postei na parte de bancos, porém, estava observando as datas e parece que o pessoal não vista muito, então me desculpem mas, onde estou acostumado a postar é aqui.

se não for possivel, eu compreendo, mas só falta isto, para eu concluir um trabalho e teve coisas piores que consegui resolver como normalizar(que é bem chato).

 

estou fazendo um trabalho de facu. e quando usao a instrução

select cod_cli from cliente

group by estado_cli

da este erro:

 

Invalid token.

Dynamic SQL Error.

SQL error code = -104.

Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause).

 

e quando uso:

 

select cod_cli, nome_cli,end_cli,tel_cli,cidade_cli, avg(valor_total_compra)

from cliente

order by nome_cli

 

da este erro:

Invalid token.

Dynamic SQL Error.

SQL error code = -104.

Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause).

 

quando pesquiso só a media não da erro, mas se na mesma pesquisa da media eu peço outros campos da este erro.

sempre vi esta sintaxe nas apostilas de banco, porém baixei o firebird recentemente e talves varie um pouco.

quem puder me dar uma dica, eu agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O erro do primeiro ocorre pois você tenta agrupar por um campo que não esta no select, o correto seria:

 

select cliente.cod_cli
from cliente
group by cliente.cod_cli
ou

select cliente.cod_cli, cliente.estado_cli
from cliente
group by cliente.cod_cli, cliente.estado_cli

No segundo caso para fazer o AVG precisa agrupar os campos, ficando:

 

select cliente.cod_cli, cliente.nome_cli, cliente.end_cli, cliente.tel_cli, cliente.cidade_cli, avg(cliente.valor_total_compra)
from cliente
group by cliente.cod_cli, cliente.nome_cli, cliente.end_cli, cliente.tel_cli, cliente.cidade_cli
order by cliente.nome_cli

Sempre procure informar a tabela que provem os campos na frente de cada campo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.