PDA

Ver la Versión Completa : Selección del valor más repetido en una SELECT


MissileRider
16-09-2007, 19:25:04
En definitiva se trata de hallar el número máximo de repeticiones. En Interbase no se puede hacer una SELECT de una SELECT, y necesito que sea una consulta sólo (no me sirve un procedimiento almacenado).

Tengo una select:


SELECT COUNT(*), TS.NumSocio, T.Deporte_ID
FROM TORNEO T, TORNEOSOCIO TS
WHERE T.ID = TS.ID
GROUP BY TS.NumSocio, T.Deporte_ID


Devuelve:


COUNT NUMSOCIO DEPORTE_ID
1 1 1
1 1 2
1 2 1
1 2 2
1 3 1
1 3 2
2 4 1


En definitiva, al final quiero sacar sólo los que más veces se repitan por DEPORTE_ID:


COUNT NUMSOCIO DEPORTE_ID
1 1 2
1 2 2
1 3 2
2 4 1


pero no puedo agrupar de nuevo con SELECT [SELECT MAX(Cuenta) FROM (SELECT........]

A alguien se le ocurre algo? Existe una manera sencilla? Se me está escapando algo?

P.D.: Se me ocurrió algo así como "HAVING COUNT(*) > ALL SELECT de todos donde no esté la fila", pero devuelve sólo si existe un valor mayor que todos los demás; si hay varios con el valor máximo se los come.

MUCHAS GRACIAS!!!

gendelphi
18-09-2007, 01:17:06
Hola, en firebird 2, si puedes hacer consultas del tipo:

SELECT ... FROM (SELECT ...)