¿Cómo sumar y agrupar por medio de condiciones en MySQL?

publicado por: Anonymous

cada día que me adentro en MySQL aumenta el grado de dificultad y yo espero alguien pueda ayudarme por acá pues me he “atorado” en esto. Agradezco mucho el tiempo que se toman en responderme, muchas gracias 🙂

La siguiente consulta:

SELECT c_id "ID", SUM(lista) "Lista" FROM puestos GROUP BY num_seccion ORDER BY c_id LIMIT 10;

Muestra lo siguiente:

+----+--------------------+
| ID | Lista              |
+----+--------------------+
|  1 |                605 |
|  2 |                789 |
|  4 |               1918 |
|  7 |               1073 |
|  9 |               1069 |
| 11 |               1601 |
| 14 |                672 |
| 15 |                778 |
| 17 |                681 |
| 18 |                191 |
+----+--------------------+

Lo que intento hacer es que me de únicamente los valores ( SUM(lista) ) mayores a 800 (a manera de ejempo) una vez ejecutada la suma, es decir:

+--------------------+
| Lista              |
+--------------------+
|                  4 |
+--------------------+

¿Como podría ser la consulta que haga una suma y me de a su vez la cantidad de valores mayores a 800?

Cabe aclarar que esa suma la hago porque las “secciones” se repiten y esto se debe a que cada sección sólo permite 500 personas (por sección) por lo tanto

SECCION 2 = 1000, ENTONCES 2A = 500 Y 2B = 500

solución

Puedes usar la siguiente consulta, cual cuenta los valores que cumplen la condición, la cual evaluarás usando HAVING.

VER DEMO

SELECT COUNT(*) total FROM (
    SELECT 
        COUNT(Lista) total, 
        SUM(lista) Lista 
    FROM puestos_20171104  
    GROUP BY num_seccion  
    HAVING Lista > 800
) auxiliar;

Resultado

total
4
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *