sql server – MS SQL Grouping on LatLng where JOIN is few OR zero

I have a Products table:

ProductID | Latitude | Longitude | Created_FirstDayOfMonth
---------------------------------------------------
Prod1       43.4912    10.6434     01/06/2021
Prod2       39.7623    2.9543      01/07/2021
Prod3       37.1623    -8.6234     01/07/2021
etc

And a Web_Views table that records individual “hits” for each product viewed on a website:

ProductID | View_FirstDayOfMonth
------------------------------
Prod2       01/07/2021
Prod3       01/08/2021
Prod1       01/07/2021
etc

I have a stored procedure that groups Products by a rounded Lat/Lng and displays the number of views per month:

SELECT
v.View_FirstDayOfMonth,
Round(p.Latitude,2) As Latitude,
Round(p.Longitude,2) As Longitude,  
Count(v.ProductID) As Views

FROM Views v

JOIN Products p ON v.ProductID = p.ProductID

WHERE v.View_FirstDayOfMonth >= @StartDate  AND
p.Latitude is not null AND p.Longitude is not null

GROUP BY v.FirstDayOfMonth,Round(p.Latitude,2),Round(p.Longitude,2)
HAVING Count(v.ProductID) >= 20
ORDER BY v.View_FirstDayOfMonth

This I am using to map areas with most views on a Google map.

THE PROBLEM

I now need the sort of negative of this.

I can’t count the negative of Views, so I need to find Product records created in the last six months with less than 20 or zero views, grouped by Lat/Lng.

This does not work and I’m not sure why…

SELECT
Round(p.Latitude,2) As Latitude,
Round(p.Longitude,2) As Longitude,  
Count(p.ProductID) As Products_Total

FROM dbo.Products p
LEFT OUTER JOIN dbo.Views v ON p.ProductID = v.ProductID

WHERE p.Created_FirstDayOfMonth >= @StartDate  AND
p.Latitude is not null AND p.Longitude is not null

GROUP BY Round(p.Latitude,2),Round(p.Longitude,2)
HAVING Count(v.ProductID) < 20

The result only includes Product areas with 1 or more views.

Can anyone tell me where I’m going wrong?