select col1, count(distinct col2) as cnt from table1 group by col1;
If there are two values of col2 for the same col1, the cnt =2 which is correct. But if one of those 2 values is null, the cnt = 1. i.e it does not consider null as a distinct value. How to rewrite the query so null is considered a distinct value?