Tengo una tabla de cuentas y una tabla de registros donde las cuentas tienen múltiples registros. Me gustaría desglosar los totales de la cuenta por rango de "conteo de registros". Es decir. Mostrar el desglose deMySQL y CASO CUANDO con un rango de valores
Count of Records | Count
=========================
0-25 | 100
25 - 50 | 122
50 - 100 | 300
Etc.
estoy usando la siguiente consulta, pero no puedo conseguirlo para agrupar por "GRP", que es lo que quiero, cualquier ayuda en la mejor manera de modificar consulta?
SELECT count(*) as ct,
CASE
WHEN COUNT(*) < 25 THEN '1-25'
WHEN COUNT(*) >= 25 < 50 THEN '25-50'
WHEN COUNT(*) >= 50 < 100 THEN '50-100'
WHEN COUNT(*) >= 100 < 250 THEN '100-250'
WHEN COUNT(*) >= 250 < 500 THEN '250-500'
WHEN COUNT(*) >= 500 < 1000 THEN '500-1000'
ELSE '1000+'
END AS grp
FROM records r,accounts a
WHERE r.account_id=a.id
ORDER BY ct
me sale ERROR 1111 (HY000): Uso no válido de función de grupo estoy usando MySQL 5.1 Gracias! – kickdaddy
Disculpe, como está utilizando las columnas 'r.Account_id' y' a.id' en la parte principal de la consulta sql, debe incluir también aquellas en la cláusula By del grupo ... Cada columna o expresión referida t9o en la parte principal (preagregación) de la consulta que no es una función de agregación (Suma, Promedio, Mín., Máx., etc.) debe mencionarse en la cláusula By del grupo. –
No veo cómo puede usar un COUNT (*) dentro de una cláusula GROUP BY. ¿Esto es posible? –