no logro Obtener el nombre de los departamentos que tienen menos de 3 empleados que viven en ciudades distintas.
me he quedado atascado sin completar la consulta:
| |||
problema consulta con group by no logro Obtener el nombre de los departamentos que tienen menos de 3 empleados que viven en ciudades distintas. me he quedado atascado sin completar la consulta: Última edición por gnzsoloyo; 26/10/2013 a las 11:49 |
| ||||
Respuesta: problema consulta con group by ¿En serio? ¿Te has atascado? ¿Y se te ocurrió usar Google, o al menos consultar el manual de refencia? Usar HAVING en MySQL Manual de referencia MySQL: Modificadores del GOUP BY
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| |||
Respuesta: problema consulta con group by gracias por tu respuesta. sí, he buscado en google. sí, he consultado el manual de referencia. seguramente no he explicado bien el "atasco" la consulta me devuelve los departamentos con menos de 3 empleados pero no se discriminar con "ciudades distintas": disculps por la IGNORANCIA. select * from empresa.empleado e inner join empresa.departamento d on e.iddept = d.iddept group by d.iddept, d.nombre_dept having count(*) <3; |
| ||||
Respuesta: problema consulta con group by Pues para discriminar las ciudades distintas, debes también agrupar por las ciudades. DE lo contrario no las diferenciará.
Código MySQL:
Esto suponiendo que en el empleado tienes un campo ciudad_id, o como sea qu elo identifiques.Ver original Nota: Si cada iddep es único, agrupar por el nombre del departamento es innecesario y superfluo. Nota 2: No uses "*" para las consultas, especialmente con JOIN. Indica los campos que realmente vas a usar, así te evitas traer columnas repetidas y datos basura (datos que no se usarán en ese proceso).
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| |||
Respuesta: problema consulta con group by gracias por contestar. siguiendo tu propuesta la consulta me quedaría así:
Código MySQL:
pero no me da los departamentos con menos de tres ciudades despues de agrupar Ver original sino las ciudades emparejadas menos de 3 veces con el mismo departamento. |
| |||
Respuesta: problema consulta con group by el enunciado dice así: (es un ejercicio del modulo de bases del ciclo de aplicaciones web) "#17. Obtener el nombre de los departamentos que tienen menos de 3 empleados que viven en ciudades distintas." en el último post lo que pongo es mi interpretación, aunque no se si tengo razón, xq es un ciclo online y el profesor todavía no me lo ha aclarado, has respondido tu 3 veces antes que mi profesor, lo cual te agradezco sinceramente. para resumir, lo que intento es agrupar por departamentos y seleccionar los que tienen menos de 3 ciudades distintas. se puede sacar todo de la tabla empleados (basta con el iddept) sin usar las relacionadas:
Código SQL:
Ver original Última edición por gnzsoloyo; 27/10/2013 a las 04:55 |
| |||
Respuesta: problema consulta con group by nefes, como se trata de un ejercicio y es política de este foro no resolverlos, no creo que sea bueno darte la solución, pero sí tratar de orientarte. Está claro que si un empleado solo vive en una ciudad, te toca buscar la cuenta de distintas ciudades (a través de empleados) agrupando por departamento y filtrar con HAVING que esa cuenta sea inferior a 3. ¿Has probado SELECT COUNT(DISTINCT loquesea) ? Es posible seguramente resolverlo también con subconsultas que incluyan SELECT DISTINCT Por otra parte está la posibilidad de usar WHERE EXISTS con subconsultas... Se trata de que pruebes y testees y nos traslades tus dudas y resultados. Ese es el mejor modo de aprender y para eso, como bien sabes, sirven los ejercicios. Realmente, el resultado final no es el objetivo, sino todo lo que se aprende para llegar a él (perdona este rollo docente: es deformación profesional). Última edición por jurena; 27/10/2013 a las 04:17 |
| |||
Respuesta: problema consulta con group by coño, gracias jurena, si t tuviera delante t daba un beso, . he hecho esta consulta y me da el resultado correcto despues de 3 días dandole vueltas, me siento más feliz que un niño en día de reyes.
Código MySQL:
Ver original ya abusando del personal: como podría hacer para que solo salga el iddept en el resultado y no la columna count? |
| ||||
Respuesta: problema consulta con group by Si quitas el COUNT() del SELECT y lo dejas en el HAVING, debería ser suficiente. DE lo contrario habrá que hacer una subconsulta en el WHERE.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| |||
Respuesta: problema consulta con group by correcto, basta con quitar el count del select y está hecho.
Código MySQL:
Ver original gracias por la ayuda Última edición por gnzsoloyo; 27/10/2013 a las 07:41 |
| ||||
Respuesta: problema consulta con group by Por favor, pon los códigos dentro de las etiquetas correspondientes a ese tipo. Para eso está el combo Highlight.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| |||
Respuesta: problema consulta con group by entendido
Código MySQL:
Ver original |
Etiquetas: |