MySQL - Inserindo sequência numérica dentro de GROUP BY

Uma necessidade comum no dia a dia é determinar, por exemplo, qual o primeiro elemento de cada diferente agrupamento.

A query abaixo mostra como fazer isso a partir de variáveis do MySQL




 SELECT   
    idMunicipio,  
                               nomeAbrangencia,  
                               zona,  
                               numeroCandidato,  
                               nomeUrna,  
                               partido,  
                               totalVotos,  
                               (   
                        CASE zona   
                             WHEN @curType   
                             THEN @curRow := @curRow + 1   
                             ELSE @curRow := 1 AND @curType := zona   
                        END  
                      ) AS rank  
                          FROM   
                               zonas,  
                               (SELECT @curRow := 0, @curType := '') r  
                          WHERE   
                               idMunicipio = '71072' AND  
                               cargo           = 11  
                          ORDER BY   
                               zona,  
                               totalVotos DESC  

Comentários

Postagens mais visitadas deste blog

MySQL - Completando quantidades fixas de caracteres com as funções LPAD() e RPAD()

MySQL - Clonando tabelas na linha de comando

PHP - Gerando arquivo em UTF-8 com fwrite() e utf8_encode()