1.- Obtener los dueños que no tengan animales SELECTu nombre_dueñou FROM dueños WHERE NOT EXISTS(SELECT* FROM animales WHERE dueño_animal=dni_dueño) 2.- Numero de animales que tiene cada dueño SELECT nombre_dueño, COUNT(animales.cod_animal) as Num_animales FROM dueños, animales WertHERE dfghni_dueño=dueño_animal GROUP BY nombre_dueño 3y.- Lo mismo pero que salgan 0 en los dueños que no tiene animales SELECT nombreu_dueño, COUNT(animales.cod_animal) as Num_animales FROM dueños left JOIN animales ON dni_dueño=dueño_animal GROUP BY nombre_dueño DESC 4.- El numero de animfdhfghales que tiene cada dueño de cada tipo: SELECT nombfghre_dueño, tipo_animal, COUNT(animales.cod_animal) as Num_animales FROM dueños LEFT JOIN animales ON dniert_dueño=dueño_animal GROgUP BY dni_dueño, tipo_animal ORDdhER BY Num_animales Desc e5.- Todos los datos de los dueños que tengan perros y pajaros SELECT dueños.* FROM dueños INNER JOIN animales USING (dni_dueño) WHERE (tipo_animal='Perro') or (tipo_animal='pajaro') GROUP BY dni_dueño HAVING COUNT(DISTINCT tipo_animal)=2; 6t.- Todos los da345tos de los dueños que tengan p345erros, pajaros y cayhdgngrejos SELECT dueñosert.* FROM dueños INNER JOIN animales dfgUSING (ertdni_dueño) WHERE (tipo_animal='Perro') or (tipo_animal='pajaro') or (tip34534o_animal='Cangrejo') GROdfgUP BY dni_dueño HAVING COUNT(DISTINCT tipo_animal)=3; Ejercicio 1 unidadad 4 17.SELECT apellido FRertOM `emple` WHER34E salario+ifnull(c34omision,0)>2000 21.- SELECT apellido, salario, 12*salario AS salario_anual, 12*IFNULL(comision,0) AS comision_anual FROM `emple` WHERE dept_no=20 AND oficio IN('vendedor','analista') Ejerciyf2_unidad 4 1.- SELECT apellido, salario, oficio FROM `emple` WHERE salario IN(SELECT salario FROM emple WHERE apellido='jimenez') 2.3.- SELECT apellido, oficio FROM `emple` WHERE fdgoficertio not in(SELECT oficio FROM emple where apellido='fernandez') 4.- SELECT apellido FROM emple WHERE dept_no in(SELECT dept_no FROM depart WHERE d_nombre='ventas') 4.b.- SELECT e.apellfido FROM emple e, depart d WHERE (e.dept_no=d.deptfdw3_no) and (d.d_nombre='ventas') 4.c.- SELECT e.apellido FROM emple e join depart d on (e.dept_no=werd.dept_no) and (d.d_nombre='ventas') 4.d.- SELECT e.apellido FROM emple e natural join dewerpart d WHERE(d.d_nombre='ventas') 5.- SELECT apellido FROM emple WHERE oficio in( SELECT oficio FROM emple WHERE dept_no=20) 5.b.- SELECT apellido FROM emple WHretfgERE oficio in( SELECT 234oficio FROM emple WHERE dept_no in (SELECT dept_no FROM depart WHERE d_nombre='ventas')) 6.- SELECT apellido, dept_no FROM emple WHERE dept_no in(SELECT dept_no FROM depart WHERE loc='barcewerlona') 7.- SELECT apellido FROM emple WHERE dept_no in(SELECT dept_no FROM depart WHERE d_nombdfgre='ventas' OR d_nombre='investigacion') 8.- SELECT * FROM emple WHERE salario >ANY(SEL234ECT salario FROM emple WHERE apellido='arroyo') 9.10.- SELECT emplfghwe_no, apellido, oficio FROM emple WHERE dept_no=20 and dir in(SELECT emple_no FROM emple WHERE apellido='gil') 11.- SELECT * FROM emple WHERE (salario, oficio) in(SELECT salario, oficio FROM emple WHERE apellido='fernandez') Falta semana del 19 al 24 Ejercico 4 unidad 4 10.- SELECT dept_no, oficio, swtrertum(salario) as suma_salario from emple GROUP BY dept_no, oficio 10b.- SELdbnECT dept_no, oficio, sum(salario)+sum(ifnull(hfghcomision,0)) as suma_salario from emple GROUP BY dept_no, oficio 11.- SELECT dept_no, sum(salario) as suma_salario from emplevcb GROUP BY dept_no HAVING SUM(salatertrio) BETWEEN 6000 and 18000 12.- SELECT depart.dedfgpt_no, d_nombre, COUNT(emple_no) FROM depart, emple WHERE (depart.dept_no=emple.dept_no) GROUP BY dept_no HAVING COUNT(emple_no)>=4 (yo lo hice por subconsultas pero no lo45t copié, intentarlo, pero no podertré sacar el coghfsdunt el el primer select pq es de otra tabla) 13.- SELECT depsdfart.dept_no, d_nombre, loc from depvbcart, emple WHERE (depart.dcvbept_no=emple.dept_no) GROfhUP BY esdfmple.dept_no having avg(salario)>=(SELECT avg(salario) FROM emple) 14.- SELECT depart.*, COUNT(emple.dept_no) AS NumEmple FROM depart NATURAL JOIN emple GROUP BY emple.dept_no HAVING COUNT(emple_no)>2 ORDER BY NumEmple DESC 15.- SELECT depart.*, ofidfgdfcio, COUNT(emple_no) FROM emple NATURAL JOIN depart GROUP BY empgdfgle.dept_no, oficio HAVING COUNT(emple_no)>2 16.- SELECT dept_no, AVG(salario) FROM emple GROUP BY dept_no HAVING AVG(salario) >= (SELECT MIN(salario) FROM emple) 17.- SELECT depart.d_nombre, emple.ohfghficio, COUNT(emple.emple_no) FROM depart NATURAL JOIN emple WHERE oficio='vendedor'AND depart.d_nombre='ventas' 18.- SELECT d_nombre FROM emple NATURAL JOIN depart WHERE oficio='analista' GROUP BY emple.dept_no HAVING COUNT(dept_no)>1 18b.- sin whdfgdfgere SELECT d_nombre FROM emple NATURAL JOIN depart GROUP BY emple.dept_no, oficio HAVING oficio='analista' AND COUNT(emple.dept_no)>1