SQL - Problema con min y count(*)

   
Vista:

Problema con min y count(*)

Publicado por Antonio (2 intervenciones) el 08/12/2008 16:20:25
Tengo que hacer una consulta en SQl que de el departamento con menos empleados...Si hago una select de esta forma...
select dname,count(ename)as empleados
from emp e,dept d
where d.deptno=e.deptno
group by dname,job
having count(ename) >2;
...salen los departamentos ke tengan más de dos empleados...
La cosa es que quiero que solo se muetre el departamento que tenga menos empleados. He intentado poniendo un min(count(*)) en el having, pero me da fallo de sintaxis...
¿Alguien me ayuda?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema con min y count(*)

Publicado por Gerardo Magaña (13 intervenciones) el 12/12/2008 00:16:29
Hola que tal, haber si te entendi bien necesitas hacer una sentencia que te devuleva los departamentos con menos pesonal, si es asi creo que tu sentencia esta bien solo quiza por ahi te falta a mi parecer quitar el having y agregar el order by y no se si necesites una cantidad de registro para que utilizaras el top x te pongo abmos ejemplos con tu propia sentencia

select dname,count(ename)as empleados
from emp e,dept d
where d.deptno=e.deptno
group by dname,job
order by count(ename)

o

select top 5 dname,count(ename)as empleados
from emp e,dept d
where d.deptno=e.deptno
group by dname,job
order by count(ename)

espero haberte podido ayudar, me comentas como te fue

saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con min y count(*)

Publicado por pitger (1 intervención) el 08/01/2009 08:35:05
OOOle Gerardo... después de tirarme toda la noche al fin he dado con el dato gracias a ti.
en mi caso porque en todos los sitios donde buscaba ayuda se indicaba que el count se referenciase con su alias y me daba fallo una y otra vez.

En mi caso estaba haciéndolo así:

select top 5 dname,count(ename)as empleados
from emp e,dept d
where d.deptno=e.deptno
group by dname,job
order by empleados

... pero como digo en el order by... al usar de nuevo count(ename) ya me ha funcionado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar