Ir para conteúdo

Arquivado

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

Adson aquino

Group by

Recommended Posts

Estou com um problema e não consigo resolver, quando coloco group by em meu select aparece o seguinte erro.

 

Warning: pg_query() [function.pg-query]: Query failed: ERRO: coluna "agendamento_revisao.c11" deve aparecer na cláusula GROUP BY ou ser utilizada em uma função de agregação LINE 1: SELECT c11,c12,c4 FROM agendamento_revisao WHERE c15='' grou... ^ in /var/www/frotas/motorista/principal.php on line 111

 

 

oq pode ser o problema aqui vai o meu select...

 

$sql = pg_query("SELECT c11,c12,c4 FROM agendamento_revisao WHERE c15='$c1' group by c4");

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que você colocar no SELECT você tem que por no Group By

SELECT c11, c12, c4 FROM agendamento_revisao WHERE c15 = '$c1' group by c11, c12, c4"

Compartilhar este post


Link para o post
Compartilhar em outros sites

no seu caso, pelo que percebi você teria que usar o distinct: SELECT DISTINCT c11,c12,c4 FROM agendamento_revisao WHERE c15='$c1'

 

group by eu uso em uma situação que faço um calculo no select , por exemplo

 

 

SELECT count(c11) as soma ,c12,c4 FROM agendamento_revisao WHERE c15='$c1' GROUP BY c12,c4

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi o que você quer. Porém você não vai conseguir agrupar quando os dados são diferentes.

 

| Nome | Idade |

| João | 18 |

| João | 17 |

| João | 15 |

| Maria | 15 |

| José | 15 |

 

Se você querer agrupar os nomes, não vai agrupar porquê as idades são diferentes.

Agora se você tirar a idade do select e agrupor por nome, só vai mostrar uma vez.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seu problema é no Postgre e não no PHP. Vou mover para o fórum correto.

 

Tópico Movido

PHP http://forum.imasters.com.br/public/style_emoticons/default/seta.gif PostgreSQL

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu Amigos pelas dicas, vou tentar resolver aqui o meu problema.

 

 

Adson o que seria os campos C11, c12 e c4??

e quais os tipos deles (se é numerico, string e tals).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara quando você usa um group by de apenas um campo e quer exibir outros campos você tem que usar nos outros campos algumas das funções de agregação: SUM, AVG, MAX, MIN

 

ou seja,

 

$sql = pg_query("SELECT MAX(c11), MAX(c12), c4 FROM agendamento_revisao WHERE c15='$c1' group by c4");

 

 

 

obs: usei a função MAX apenas como exemplo.

 

 

[]'ssss

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.