2009/11/4 Michel Sabchuk <[email protected]>:
> Olá pessoal,
>
> Gostaria de saber se alguém tem uma sugestão para eu atender minha demanda:
>
> Estou administrando um portal de anúncios classificados grátis [1] e
> na sua capa eu listo os últimos anúncios realizados por usuários.
>
> Uma coisa que acontece com certa frequencia é o usuário anunciar
> várias vezes o mesmo produto, seja por engano ou intencionalmente.
>
> Eu ainda não defini a melhor abordagem para evitar isso, por enquanto
> estou moderando os anúncios repetidos mas eu queria evitar que os
> anúncios duplicados aparecessem entre o momento que foram anunciados e
> o momento que eu detectei a duplicata.
>
> Já implantei algumas alternativas simples para evitar que o usuário
> faça isso por engano, agora, gostaria de mostrar anúncios de autores
> únicos na capa do site.
>
> O ideal seria eu listar os últimos anúncios cadastrados e filtrá-los
> para que eu mostrasse um de cada autor, limitando em cinco anúncios.
> Acho que isso não é possível certo?
>
> Pensei também em listar os autores em paralelo com um subselect que me
> dissesse o último anúncio dele, eu ordenaria pela data do anúncio e
> pegaria o último cadastrado de cada autor. O problema é que parte dos
> meus anúncios tem autores registrados, armazenados numa tabela
> especifica e outra parte tem autores não-registrados, identificados
> por campos para nome e email no próprio anúncio. Nesta abordagem
> proposta, seria difícil mesclar as duas hipóteses.
>
> Como preciso só de 5 anúncios, poderia listar uns 30 e torcer para
> que, nesses 30 existam ao menos 5 autores únicos (pelas estatísticas
> isso acontece). Não é uma solução elegante :) Gostaria de tentar outra
> abordagem antes de seguir este passo.
>
> Alguém tem alguma sugestão?
>
> [1] http://portaldoclassificado.com/pr/
>


Tente algo do tipo:

SELECT autor, max(data_anuncio) FROM sua_tabela
GROUP BY autor
ORDER BY random()
LIMIT 5;

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

Responder a