Alguém sabe pq isso não funciona?
SELECT f.nome_usuario, e.nome_empresa, COUNT(f.id_usuario_pk)
FROM funcionario f
RIGHT JOIN empresa e
ON f.id_empresa_fk = e.id_empresa_pk
GROUP BY e.nome_empresaDiz que não é uma cláusula group by válida…
Alguém sabe pq isso não funciona?
SELECT f.nome_usuario, e.nome_empresa, COUNT(f.id_usuario_pk)
FROM funcionario f
RIGHT JOIN empresa e
ON f.id_empresa_fk = e.id_empresa_pk
GROUP BY e.nome_empresaDiz que não é uma cláusula group by válida…
pq vc tem q colocar no group by todos os campos que nao estao usando o count, no caso f.nome_usuario e e.nome_empresa,
    SELECT f.nome_usuario, e.nome_empresa, COUNT(f.id_usuario_pk)  
    FROM funcionario f  
    RIGHT JOIN empresa e  
    ON f.id_empresa_fk = e.id_empresa_pk  
    GROUP BY e.nome_empresa, f.nome_usuario 
Poxa, valeu!!!
Mas e se eu não quiser que mostre o count na minha pesquisa?
Eu li que pra vc usar o group by, vc tem usar, ou count, ou avg, ou sum…
Se não quiser calcular nada, não precisa de group by.
Se quiser colocar alguma condição no valor agregado utilize having.
Exemplo:
    SELECT f.nome_usuario, e.nome_empresa, COUNT(f.id_usuario_pk)    
    FROM funcionario f    
    RIGHT JOIN empresa e    
    ON f.id_empresa_fk = e.id_empresa_pk    
    GROUP BY e.nome_empresa, f.nome_usuario   
    HAVING COUNT(f.id_usuario_pk) > 2AH TAH!! ENTENDI!!!
MUITO OBRIGADA!!!
uma coisa, se você não quiser calcular count, avg, etc… quando você agrupar, ele vai retornar “desduplicar” linhas que estariam duplicadas, teria o mesmo efeito do “distinct” na consulta.
Assim, isso:
SELECT f.nome_usuario, e.nome_empresa
FROM funcionario f      
RIGHT JOIN empresa e      
ON f.id_empresa_fk = e.id_empresa_pk      
GROUP BY e.nome_empresa, f.nome_usuario
teria o mesmo resultado que
SELECT DISTINCT f.nome_usuario, e.nome_empresa
FROM funcionario f      
RIGHT JOIN empresa e      
ON f.id_empresa_fk = e.id_empresa_pk(a segunda forma não é aceita em todos os SGBDs, o distinct em alguns SGBDs só aceita 1 campo)
Boa… nem lembrei deste detalhe!