Se puede hacer, pero el código es un poco complicado.
Requiere:
1. Iniciar una variable incremental dinámicamente en una consulta y otra variable de control de entidad.
2. El resultado de esa consulta se debe ordenar por
nom_ent .
3. Hacer que sume si y sólo si la entidad es igual a la variable de control, sino que reinicie la incremental.
Algo así:
Código sql:
Ver originalSELECT
nom_ent,
nom_mun,
municipio,
orden
FROM
(SELECT
nom_ent,
nom_mun,
municipio,
(IF(@MUNI = municipio,(@SUMA:=@SUMA+1),@SUMA:=1)) orden,
@MUNI := municipio
FROM
(SELECT
CE.nom_ent,
CE.nom_mun,
CE.municipio,
@SUMA:=0,
@MUNI:=CE.municipio
FROM cat_entmun INNER JOIN pond_mun PM USING(municipio,entidad)
WHERE pm.ciclo_pre='1' AND pm.ponderacion = 100
ORDER BY nom_ent) T1
)T2;
Nota: El orden de las asignaciones
(IF(@MUNI = municipio,(@SUMA:=@SUMA+1),@SUMA:=1)) orden, y
@MUNI := municipio es
mandatorio. No se los puede cambiar o el resultado no se obtendrá.
Pruébalo y me cuentas.