WITH CTE AS(
SELECT DISTINCT region FROM `Shop.Insurance`
),CTE2 AS (
SELECT ROW_NUMBER() OVER(ORDER BY region) - 1 RegionId, region FROM CTE
)SELECT
age,
IF(sex = 'female', 0, 1) as gender,
bmi,
children,
IF(smoker = false, 0, 1) AS smoker,
regionId,
charges
FROM Shop.Insurance AS A JOIN CTE2 AS B ON A.region = B.region;