Servidor SQL: extrae X loggings aleatorios por estado

Tengo una tabla con loggings para cada código postal en los Estados Unidos. Para los propósitos de mostrar en un map, necesito seleccionar X loggings aleatorios por estado. ¿Cómo voy a hacer esto?

Utilizar:

WITH sample AS ( SELECT t.*, ROW_NUMBER() OVER (PARTITION BY t.state ORDER BY NEWID()) AS rank FROM ZIPCODES t) SELECT s.* FROM sample s WHERE s.rank <= 5 
 SELECT * FROM ZipCodes ORDER BY NEWID()