Попробуйте это
With Table1 AS
(
Select 1 as CustomerId, 'M' Gender, 'Platinum' as CustomerType
UNION SELECT 2, 'M', 'Platinum'
UNION SELECT 3, 'F', 'Gold'
UNION SELECT 4, 'M', 'Gold'
UNION SELECT 5, 'F', 'Gold'
UNION SELECT 6, 'M', 'Silver'
UNION SELECT 7, 'F', 'Silver'
UNION SELECT 8, 'M', 'Silver'
UNION SELECT 9, 'F', 'Silver'
),
Table2 AS
(
SELECT 1 as CustomerId, 'FL' State, NULL City, NULL ZipCode
UNION SELECT 2, 'MO' State, NULL City, NULL ZipCode
UNION SELECT 3, 'MO' State, NULL City, NULL ZipCode
UNION SELECT 4, 'FL' State, NULL City, NULL ZipCode
UNION SELECT 5, 'FL' State, NULL City, NULL ZipCode
UNION SELECT 6, 'FL' State, NULL City, NULL ZipCode
UNION SELECT 7, 'MO' State, NULL City, NULL ZipCode
UNION SELECT 8, 'MO' State, NULL City, NULL ZipCode
UNION SELECT 9, 'MO' State, NULL City, NULL ZipCode
)
Select
Row_Number() Over (Order By State) Id,
State,
Sum (Case When Gender = 'm' then 1 else 0 end) as Males,
Sum (Case When Gender = 'f' then 1 else 0 end) as Females,
Sum (Case When CustomerType = 'Platinum' then 1 else 0 end) as PlatinumCustomer,
Sum (Case When CustomerType = 'Gold' then 1 else 0 end) as GoldCustomer,
Sum (Case When CustomerType = 'Silver' then 1 else 0 end) as SilverCustomer
From Table1
Inner Join Table2
on Table1.CustomerId = Table2.CustomerId
Group By State