A cláusula WHERE é utilizada para filtrar as linhas/registros que deverão ser considerados em uma consulta.
Embora HAVING também possua um propósito semelhante, esta cláusula só pode ser utilizada em agrupamentos gerados a partir da cláusula GROUP BY. Basicamente, o HAVING permite que vc aplique um filtro em cima de um agrupamento (como comparar a soma de um campo
ou contagem do número de registros), algo que não seria possível ao se empregar a cláusula WHERE.
Espero ter ajudado.
Abs