Uso de rank no mysql
Olá a todos.
Alguém saberia me dizer porque minha query abaixo em um determinado momento ela zera o valor do @rank_fabricante mesmo o valor da variável @fabricante_atual ainda ser igual ao f.id
Ou seja pela lógica ela deveria zerar o valor do @rank_fabricante apenas quando o valor de f.id fosse diferente de @fabricante_atual não?
SELECT f.id, f.nome_fantasia, c.categoria, c.id as id_categoria, COUNT(c.categoria) qtd, @rank_fabricante:= IF(@fabricante_atual = f.id, @rank_fabricante + 1, 0) AS rank_fabricante, @fabricante_atual := f.id
FROM produtos p, produtos_categorias c, fabricantes f
WHERE p.id_categoria = c.id AND p.id_fabricante=f.id
GROUP BY f.id, f.nome_fantasia, c.categoria, c.id
ORDER BY f.nome_fantasia, COUNT(c.categoria) desc
Discussão (27)
Carregando comentários...