Duplicate Query Results Month over Month

We are trying to get a record count for each month for the duration of a year. Some months are producing identical vulnerability counts; however, with respective month dates. For example, March and April months could have the same count, but May might be different. When looking at Nexpose, we are seeing different vulnerability counts for March and April (where the query showed identical). The query is pulling from the data warehouse. Looking for guidance on if this is the correct tables, etc. to obtain specific monthly counts for vulnerabilities. As well as eliminate the duplication count problem Hopefully this makes sense :laughing: Any and all help greatly appreciated!

SELECT DISTINCT fad.day AS date,
to_char((fad.day)::timestamp with time zone, ‘YYYY-MM’::text) AS period,
dt.name AS owner,
fad.asset_id AS asset,
v.title AS vulnerability,
v.severity,
v.pci_status AS status,
v.severity_score AS score,
v.denial_of_service AS service_denial,
v.pci_special_notes AS notes,
da.ip_address,
da.host_name,
da.host_type,
da.os_type,
da.os_vendor,
da.os_family,
da.os_name,
da.os_version,
da.os_description,
da.os_system,
da.sites
FROM (((((dim_tag dt
JOIN dim_asset_tag dat ON ((dat.tag_id = dt.tag_id)))
JOIN dim_asset da ON ((da.asset_id = dat.asset_id)))
JOIN fact_asset_date fad ON ((fad.asset_id = da.asset_id)))
JOIN fact_asset_vulnerability_remediation_date av ON ((av.asset_id = da.asset_id)))
JOIN dim_vulnerability v ON ((v.vulnerability_id = av.vulnerability_id)))
WHERE ((dt.type = ‘OWNER’::text) AND (v.severity <> ‘Moderate’::text) AND (fad.day >= (date_trunc(‘month’::text, (CURRENT_DATE)::timestamp with time zone) - ‘1 year’::interval)) AND (v.severity <> ‘Moderate’::text) AND (dt.name = ANY (ARRAY[‘Bob’::text, ‘Alice’::text, ‘Carol’::text, ‘Chuck’::text, ‘Craig’::text, ‘Erin’::text, ‘Grace’::text, ‘Frank’::text, ‘Oscar’::text, ‘Walter’::text])))