Mostra i dati degli ultimi X giorni

Ciao
Sto cercando di eseguire un report che mostri le visite negli ultimi 30 giorni, quindi ho usato questa query ma apparentemente è sbagliata:

select  distinct user_id, max(visited_at) as visited_at from user_visits
WHERE CAST(visited_at  AS DATE) >= GETDATE() -30
group by user_id

Ho testato anche questa condizione

WHERE CAST(visite d_at AS DATE) >= CAST(GETDATE() -30 AS DATE)

è possibile avere questo tipo di condizioni?
Grazie

Prova

SELECT
  user_id,
  COUNT(*) AS visits
FROM user_visits
WHERE visited_at > CURRENT_DATE - 30
GROUP BY 1
ORDER BY 2 DESC

grazie @Falco , funziona bene