Tengo dos tablas. La Tabla A tiene una lista de nombres de empleados. La Tabla B es una tabla compleja con información sobre llamadas telefónicas realizadas por los empleados.SQL - Agrupar por con la combinación izquierda
Mi objetivo es hacer una tabla con las columnas 'name' y 'callCount'. Mi objetivo es hacer esto con un 'join' y un 'group by', pero sigo echando de menos a los empleados que no han hecho llamadas. ¿Cómo puedo mantener el nombre y poner un cero allí?
Quizás estoy cerca y alguien puede señalar mi error tipográfico? Gracias de antemano por su ayuda, aquí está el SQL:
SELECT A.name, COUNT(B.call_id) AS 'outgoing call count'
FROM EmployeeTable A
LEFT JOIN CallTable B
ON A.name = B.call_from_name
WHERE B.call_type LIKE 'outgoing'
AND B.voice_mail = '0'
...
GROUP BY A.name
¡Maravilloso, muchas gracias! :) – Brandi
Tenga cuidado al usar LIKE cuando no necesite las comparaciones de comodines. Realmente puede matar la velocidad de tu consulta. Solo haga una comparación de igualdad regular: DONDE call_type = 'saliente' –
Para una explicación más detallada: http://wiki.lessthandot.com/index.php/WHERE_conditions_on_a_LEFT_JOIN – HLGEM