Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-05-2005
bartHo bartHo is offline
Registrado
 
Registrado: may 2005
Posts: 9
Poder: 0
bartHo Va por buen camino
Nested Aggregate Functions

tengo un problema con interbase. Tengo que hacer un select y me da un error: "nested aggregate functions are not allowed". Un amigo me ha dicho que con mysql se puede hacer SELECT MAX(COUNT(ID_PEL)) FROM VISTA GROUP BY ID_PEL. El problema es que interbase no deja.

Alguien sabe como puedo hacer el select que me retorne el maximo de un count que esta agrupado por un campo???

No se si me he explicado bien, pero bueno, espero respuestas.

Ta Luego!
Responder Con Cita
  #2  
Antiguo 20-05-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
mysql podria permitir muchas cosas que no son parte del estándar, y que como esta sentencia que has puesto, no tienen mucho sentido para mi.. ¿estas seguro que mysql la permite?

Creo que podrias hacer simplemente

Código SQL [-]
Select id_pel, count(*)
  from tabla
 group by id_pel
 order by count(*) desc;
y quedarte solo con el primer registro, o bien hacer una vista que agrupe y luego un select max() sobre dicha vista.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 20-05-2005
bartHo bartHo is offline
Registrado
 
Registrado: may 2005
Posts: 9
Poder: 0
bartHo Va por buen camino
A ver...

Eso era un ejemplo... Mi caso es: tengo 3 tablas (archivo,busqueda, devuelve):
- archivo es un tabla con su clave_archivo i datos
- busqueda tiene su clave i otros datos
- devuelve es una tabla formada por la clave_archivo i la clave_busqueda, donde por cada busqueda se dan tantas filas como archivos devuelve. Ejemplo:

Clave_busqueda Clave_archivo
1 2
1 5
2 1
3 2

La consulta que quiero hacer es visualizar el nombre del archivo mas devuelto, se haria : SELECT COUNT(clave_Archivo) FROM DEVUELVE
GROUP BY clave_archivo, y lo que no se hacer es como devolver el maximo de este count.

GRACIASSSS
Responder Con Cita
  #4  
Antiguo 20-05-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
La solución es la misma, ¿no te parece?

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #5  
Antiguo 20-05-2005
bartHo bartHo is offline
Registrado
 
Registrado: may 2005
Posts: 9
Poder: 0
bartHo Va por buen camino
quiero el maximo pero...

con ese codigo me hace el count i hace la tabla, la ordena de mayor a menor... Pero yo lo que quiero es que solo me devuelva el maximo, es decir, la primera fila.

Como hago el MAX( del codigo) ???

thanks
Responder Con Cita
  #6  
Antiguo 20-05-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Cool

Cita:
Empezado por bartHo
Pero yo lo que quiero es que solo me devuelva el maximo, es decir, la primera fila.
¿leiste esta parte?

Cita:
Empezado por Yo mero
y quedarte solo con el primer registro, o bien hacer una vista que agrupe y luego un select max() sobre dicha vista
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #7  
Antiguo 20-05-2005
bartHo bartHo is offline
Registrado
 
Registrado: may 2005
Posts: 9
Poder: 0
bartHo Va por buen camino
pero como?

pero como es el codigo para seleccionar el primer registro o el maximo de:

Select id_pel, count(*)
from tabla
group by id_pel
order by count(*) desc; ???????

Es eso q no se...
Responder Con Cita
  #8  
Antiguo 20-05-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
si haces una vista, y suponinendo que el count(*) se llamará contador, pues
Código SQL [-]
select max(contador)
  from Vista;

Si no, pues depende de la herramienta con que ejecutes la consulta. Si es delphi, pues abris en dataset (digamos un IBQuery), apuntas el valor del primer registro y luego lo cerras.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #9  
Antiguo 20-05-2005
bartHo bartHo is offline
Registrado
 
Registrado: may 2005
Posts: 9
Poder: 0
bartHo Va por buen camino
...

Es q no es para hacer ninguna aplicacion, es por un ejercicio que tengo. Es para ver si se puede solucionar esto con solo un select... sino, probare lo de la vista.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 11:18:27.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi