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

duda sobre una consulta en sql

Estas en el tema de duda sobre una consulta en sql en el foro de Mysql en Foros del Web. hola tengo una tabla en la cual hay con el id de empleado y el nombre de la empresa, a partir de ahí tengo que ...
  #1 (permalink)  
Antiguo 13/01/2009, 13:41
 
Fecha de Ingreso: enero-2009
Mensajes: 5
Antigüedad: 15 años, 2 meses
Puntos: 0
Pregunta duda sobre una consulta en sql

hola tengo una tabla en la cual hay con el id de empleado y el nombre de la empresa, a partir de ahí tengo que sacar la empresa que más empleados tiene, usando count(*) puedo sacar la tabla con las empresas y el número de empleados que tiene pero no consigo a parir de ahí sacar la empresa que más empleado tiene ¿alguien me puede hechar un cable?
gracias por adelantado
  #2 (permalink)  
Antiguo 13/01/2009, 14:47
 
Fecha de Ingreso: enero-2009
Mensajes: 5
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: duda sobre una consulta en sql

he provado con esto:

create view empEmpresa(empleados, nomEmp)
as select count(*), nombre from Empresa
group by nombre;
select nomEmp from empEmpresa where empleados=max(empleados);

pero me sale: Invalid use of group function
  #3 (permalink)  
Antiguo 13/01/2009, 15:18
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: duda sobre una consulta en sql

Cita:
Iniciado por __nathiel__ Ver Mensaje
he provado con esto:

create view empEmpresa(empleados, nomEmp)
as select count(*), nombre from Empresa
group by nombre;
select nomEmp from empEmpresa where empleados=max(empleados);

pero me sale: Invalid use of group function
SELECT empEmpresa.nomEmp, count(empEmpresa.empleados) FROM empEmpresa INNER JOIN
(SELECT Max(empleados) maximo FROM empEmpresa GROUP BY nomEmp)t1 ON count(empEmpresa.empleados) = t1.maximo GROUP BY empEmpresa.nomEmp

No lo he probado, pero debería funcionar. Piensa que dos o más empresas pueden tener el mismo número de empleados y ser este el máximo.
  #4 (permalink)  
Antiguo 14/01/2009, 06:28
 
Fecha de Ingreso: enero-2009
Mensajes: 5
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: duda sobre una consulta en sql

Cita:
Iniciado por jurena Ver Mensaje
SELECT empEmpresa.nomEmp, count(empEmpresa.empleados) FROM empEmpresa INNER JOIN
(SELECT Max(empleados) maximo FROM empEmpresa GROUP BY nomEmp)t1 ON count(empEmpresa.empleados) = t1.maximo GROUP BY empEmpresa.nomEmp

No lo he probado, pero debería funcionar. Piensa que dos o más empresas pueden tener el mismo número de empleados y ser este el máximo.
Muchas gracias, pero tampoco sale, me da el mismo error . Ademas que haya varias posibilidades no debería ser un problema para el select no ???
  #5 (permalink)  
Antiguo 14/01/2009, 06:56
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años
Puntos: 574
Respuesta: duda sobre una consulta en sql

Si te he entendido bien tenemos


TablaEmpleados

Id_Empleado
NomEmpresa

luego:

Opción 1:

Código:
Select sbconsulta.NomEmpresa, sbconsulta.Empleados
    From (Select TablaEmpleados.NomEmpresa, count(*) as Empleados
                   From TablaEmpleados
                   Group by NomEmpresa) as sbconsulta
Order by sbconsulta.Empleados DESC Limit 1;
Esto nos dará la empresa con más empleados, pero si hay mas de una con el mismo numero de empleados no nos enteraremos.


Opción 2:



Código:
Select sbconsulta.NomEmpresa, sbconsulta.Empleados
From (Select TE1.NomEmpresa, count(*) as Empleados
            From TablaEmpleados as TE1
            Group by TE1.NomEmpresa) as sbconsulta
where sbconsulta.Empleados=
            ((Select max(sbconsulta1.Empleados)
               From (Select TE2.NomEmpresa,
                         count(*) as Empleados
                         From TablaEmpleados as TE2
                         Group by TE2.NomEmpresa) as sbconsulta1) as Maximo)
Order by sbconsulta.NomEmpresa;
Esto si no me he equivocado nos dará las empresas con el numero máximo de empleados por orden alfabetico.

Quim

Última edición por quimfv; 14/01/2009 a las 07:03
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 17:17.