Seguinte.... Eu estou tentando fazer uma consulta que retorna o número
de participações de um cliente no meu site...

Vou abstrair um pouco, mas é mais ou menos isso

Tenho uma tabela de clientes com as colunas ROWID e NOME...

Tenho três outras tabelas, cada uma tem ROWID, IDUSUARIO, CONTEUDO..
Sendo IDUSUARIO chave estrangeira para o ROWID da tabela de cliente...

Supondo que um cliente pode ter entradas nas três tabelas, em duas, em
apenas uma ou até em nenhuma.

Gostaria de saber quantas entradas cada usuário tem, somando as
entradas nas 3 tabelas...

Ou seja, a saída seria algo como:

NOME (ou ROWID) | COUNT(*)
-----------------------------+-----------------
  joao (ou 1)             | 97
  mario (ou 5)           | 90
  wagner (ou 10)       | 38


Bom, acho que deu pra entender a idéia...

Alguém sabe como consigo fazer isso?
Já tentei usando LEFT OUTER JOIN e não consegui... A consulta que eu fiz foi:

SELECT USU.rowid, USU.nome,
( count(C1.idusuario) + count(C2.idusuario) +
count(C3.idusuario) ) AS RANK
FROM
usuarios USU LEFT OUTER JOIN conteudo1 C1 ON
(USU.rowid = C1.idusuario)
LEFT OUTER JOIN conteudo2 C2 ON ( USU.rowid = C2.idusuario )
LEFT OUTER JOIN conteudo3 C3 ON ( USU.rowid = C3.idusuario )
GROUP BY
USU.rowid, USU.nome, C1.idusuario, C2.idusuario, C2.idusuario
ORDER BY RANK DESC
LIMIT 10;


Valeu...
    Wagner Mariotto Bonfiglio
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a