Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

URGENTE: Seleccionar el máximo valor de un grupo de registros

Estas en el tema de URGENTE: Seleccionar el máximo valor de un grupo de registros en el foro de Bases de Datos General en Foros del Web. Hola a tod@s, Mi problema es q utilizo Interbase, y tengo q hacer UN select (o un stored procedure) en el que primero tengo q ...
  #1 (permalink)  
Antiguo 21/04/2005, 16:34
 
Fecha de Ingreso: abril-2005
Mensajes: 3
Antigüedad: 19 años
Puntos: 0
URGENTE: Seleccionar el máximo valor de un grupo de registros

Hola a tod@s,

Mi problema es q utilizo Interbase, y tengo q hacer UN select (o un stored procedure) en el que primero tengo q contar una serie de registros agrupados por un campo (esto lo se hacer: select count(id) from tabla group by id, x ejemplo), y de esta cuenta, tengo q sacar el mayor, es decir:

Valor
3
2
5

Esto es el primer select (contar registros agrupados por un campo). Ahora necesito coger el mayor, y el problema es q en Interbase no existe ninguna sentencia del tipo "max(count(...))", alguien sabe como resolverlo? Se lo agradecería muchisimo.

Gracias
  #2 (permalink)  
Antiguo 22/04/2005, 06:29
Avatar de Vice  
Fecha de Ingreso: agosto-2003
Mensajes: 613
Antigüedad: 20 años, 9 meses
Puntos: 2
No conozco interbase, pero te puedo proponer una posible solución que es posible en todos los gestores de bases de datos que conozco.
Ordena el resultado de mayor a menor y quédate con la primera fila que te devuelve. En mysql sería
Código:
select id, count(*)
from tabla
group by 1
order by count(*) desc limit 0,1
En sql server se realizaria con la instrucción top.
En fin, seguro que en interbase existe algo parecido para hacer esto.
Un saludo
__________________
Estoy contagiado de Generación-I
  #3 (permalink)  
Antiguo 22/04/2005, 08:18
 
Fecha de Ingreso: abril-2005
Mensajes: 3
Antigüedad: 19 años
Puntos: 0
Gracias por la respuesta.

Todas estas soluciones ya las había probado y ninguna me ha funcionado bien, además, no puedo poner q me seleccione la primera fila xq a lo mejor puede q haya dos registros con el mismo número, y me tengo q quedar con los dos, no con el primero.

  #4 (permalink)  
Antiguo 22/04/2005, 11:42
Avatar de cableh  
Fecha de Ingreso: diciembre-2004
Mensajes: 54
Antigüedad: 19 años, 4 meses
Puntos: 0
Ahí va una solución en ms Sql Server (te respondemos en todo menos en interbase) que espero te pueda servir:

select id,count(*) from x group by id
having count(*)=(select top 1 count(*) from x group by id order by count(*) desc)

Salu2.
  #5 (permalink)  
Antiguo 22/04/2005, 17:12
Avatar de Neuron_376  
Fecha de Ingreso: abril-2005
Mensajes: 1.051
Antigüedad: 19 años, 1 mes
Puntos: 2
Prueba esto

select max(id) from MyTabla

Sino soporta max, entonces busca uno similar que si soporte.

Suete!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:08.