Consulta SQL que recupere os imóveis mais visitados no portal de imobiliária
4 respostas
hiroc
Olá pessoal,
Não sou muito bom em SQL e estou tendo dificuldade em uma consulta.
No banco, existe uma tabela que armazena cada visita realizada nos imóveis do portal de imobiliária, e nessa tabela existe uma coluna que se chama “idimovel”, que armazena qual o imóvel que fora visitado.
Preciso fazer uma consulta que me retorne os 10 imóveis mais visitados, como faço isso?
Só para informar, a tabela se chama visualizadetalhes e o campo que armazena qual imóvel foi visitado é “idimovel”.
Você quis dizer que em cada visita a determinado imóvel é adicionado uma linha na tabela visualizadetalhes?
Se for isso vamos a solução:
Pense.
Primeiramente temos que contar quantas visitas temos para determinado imóvel.
Para identificar cada imóvel temos a coluna idimovel (repetida uma vez para cada visita).
Então teremos:
select idimovel as imovelVisitado, count(idimovel) as nroVezes from visualizadetalhes group by idimovel
Mas você só precisa dos 10 mais visitados. Se for no postgres ficará assim
select idimovel as imovelVisitado, count(idimovel) as nroVezes from visualizadetalhes group by idimovel order by nroVezes desc offset 0 limit 10
Lembre-se que a sintaxe de limites início e máximo de resultados da consulta varia de banco para banco. Isso que mostrei seria para o postgres.
marcosharbs
bem primeiro acho melhor vc dar uma estudada em sql… mas te ajudando
no banco vc teria que ter um campo que guardasse quantas vezes o imovel foi visitado, um campo tipo qtd_visitas na tabela de imoveis ai vc faz um select assim:
SELECT * FROM tabela_imoveis WHERE rownum <= 10 ORDER BY qtd_visitas DESC
esse select ai te retornaria 10 registros da tabela imoveis ordenados decrescentemente pelo campo qtd_visitas
esse select funciona no oracle mas depende o banco de dados que vc está usando a sintaxe sql é diferente e vc teria que adaptar ele
hiroc
de fato marcos, eu preciso dar uma estudada melhor em SQL urgentemente…
e wagner, valew pelo galho! Como eu estou usando mysql, o limite se determina assim: LIMIT 0,10
o resto ficou identico…
valew pessoal!
Y
Yky_Mattshawn
hiroc:
de fato marcos, eu preciso dar uma estudada melhor em SQL urgentemente…
e wagner, valew pelo galho! Como eu estou usando mysql, o limite se determina assim: LIMIT 0,10
o resto ficou identico…
valew pessoal!
OBS.: no MySQL, a cláusula LIMIT estipula, com 1 parâmetro, o número de registros. Quando usa-se dois parâmetros, aí então define-se offset.