How can I improve the SQL query below (SQL Server 2008)? I want to try to avoid sub-selects, and I'm using a couple of them to produce results like this

```
StateId        TotalCount      SFRCount        OtherCount
---------------------------------------------------------
AZ             102             50              52
CA             2931            2750            181
etc...

SELECT 
    StateId, 
    COUNT(*) AS TotalCount,
    (SELECT COUNT(*) AS Expr1 FROM Property AS P2
        WHERE (PropertyTypeId = 1) AND (StateId = P.StateId)) AS SFRCount,
    (SELECT COUNT(*) AS Expr1 FROM Property AS P3
        WHERE (PropertyTypeId <> 1) AND (StateId = P.StateId)) AS OtherCount
FROM Property AS P
GROUP BY StateId
HAVING (COUNT(*) > 99)
ORDER BY StateId

```