Skip to content

Commit a6abbc3

Browse files
adding new sql transformation query and create customer function for converting value into title case
1 parent 901b9cc commit a6abbc3

2 files changed

Lines changed: 526 additions & 185 deletions

File tree

explore_database/customers/customers.sql

Lines changed: 184 additions & 183 deletions
Original file line numberDiff line numberDiff line change
@@ -1251,197 +1251,198 @@ FROM bronze.customers ;
12511251
--#############################################################################################
12521252
--############################## CUSTOEMR CLEAN DATA ##########################################
12531253
--#############################################################################################
1254-
SELECT TOP (1000) [customer_id]
1255-
,TRIM(title) as title
1256-
,CASE
1257-
WHEN LEN(TRIM(full_name)) - LEN(REPLACE(TRIM(full_name), ' ', '')) = 2 THEN PARSENAME(REPLACE(TRIM(full_name), ' ', '.'), 2)
1258-
WHEN LEN(TRIM(full_name)) - LEN(REPLACE(TRIM(full_name), ' ', '')) = 1 THEN PARSENAME(REPLACE(TRIM(full_name), ' ', '.'), 2)
1259-
END AS first_name,
1260-
PARSENAME(REPLACE(TRIM(full_name), ' ', '.'), 1) AS last_name
1261-
1262-
,CASE TRIM(LOWER(gender))
1263-
WHEN 'f' THEN 'Female'
1264-
WHEN 'female' THEN 'Female'
1265-
WHEN 'm' THEN 'Male'
1266-
WHEN 'male' THEN 'Male'
1267-
WHEN 'nb' THEN 'Non-Binary'
1268-
WHEN 'non-binary' THEN 'Non-Binary'
1269-
WHEN 'other' THEN 'Other'
1270-
WHEN 'prefer not to say' THEN 'Other'
1271-
ELSE 'Unknown'
1272-
END as gender
1273-
1274-
,CASE
1275-
WHEN TRIM(date_of_birth) LIKE '[A-Z][a-z][a-z][a-z]% __, ____' THEN TRY_CONVERT(DATE, TRIM(date_of_birth))
1276-
WHEN TRIM(date_of_birth) LIKE '[A-Z][a-z][a-z] __, ____' THEN TRY_CONVERT(DATE, TRIM(date_of_birth))
1277-
WHEN TRIM(date_of_birth) LIKE '____-__-__' THEN TRY_CONVERT(DATE, TRIM(date_of_birth))
1278-
WHEN TRIM(date_of_birth) LIKE '____/__/__' THEN TRY_CONVERT(DATE, TRIM(date_of_birth))
1254+
SELECT
1255+
customer_id
1256+
,TRIM(title) as title
1257+
,CASE
1258+
WHEN LEN(TRIM(full_name)) - LEN(REPLACE(TRIM(full_name), ' ', '')) = 2 THEN PARSENAME(REPLACE(TRIM(full_name), ' ', '.'), 2)
1259+
WHEN LEN(TRIM(full_name)) - LEN(REPLACE(TRIM(full_name), ' ', '')) = 1 THEN PARSENAME(REPLACE(TRIM(full_name), ' ', '.'), 2)
1260+
END AS first_name,
1261+
PARSENAME(REPLACE(TRIM(full_name), ' ', '.'), 1) AS last_name
12791262

1280-
WHEN TRIM(date_of_birth) LIKE '__/__/____' AND TRY_CONVERT(INT, SUBSTRING(TRIM(date_of_birth), 4, 2)) > 12 THEN TRY_CONVERT(DATE, TRIM(date_of_birth), 101)
1281-
WHEN TRIM(date_of_birth) LIKE '__/__/____' AND TRY_CONVERT(INT, LEFT(TRIM(date_of_birth), 2)) > 12 THEN TRY_CONVERT(DATE , TRIM(date_of_birth), 103)
1263+
,CASE TRIM(LOWER(gender))
1264+
WHEN 'f' THEN 'Female'
1265+
WHEN 'female' THEN 'Female'
1266+
WHEN 'm' THEN 'Male'
1267+
WHEN 'male' THEN 'Male'
1268+
WHEN 'nb' THEN 'Non-Binary'
1269+
WHEN 'non-binary' THEN 'Non-Binary'
1270+
WHEN 'other' THEN 'Other'
1271+
WHEN 'prefer not to say' THEN 'Other'
1272+
ELSE 'Unknown'
1273+
END as gender
1274+
1275+
,CASE
1276+
WHEN TRIM(date_of_birth) LIKE '[A-Z][a-z][a-z][a-z]% __, ____' THEN TRY_CONVERT(DATE, TRIM(date_of_birth))
1277+
WHEN TRIM(date_of_birth) LIKE '[A-Z][a-z][a-z] __, ____' THEN TRY_CONVERT(DATE, TRIM(date_of_birth))
1278+
WHEN TRIM(date_of_birth) LIKE '____-__-__' THEN TRY_CONVERT(DATE, TRIM(date_of_birth))
1279+
WHEN TRIM(date_of_birth) LIKE '____/__/__' THEN TRY_CONVERT(DATE, TRIM(date_of_birth))
12821280

1283-
WHEN TRIM(date_of_birth) LIKE '__-__-____' AND TRY_CONVERT(INT, SUBSTRING(TRIM(date_of_birth), 4, 2)) > 12 THEN TRY_CONVERT(DATE, TRIM(date_of_birth), 110)
1284-
WHEN TRIM(date_of_birth) LIKE '__-__-____' AND TRY_CONVERT(INT, LEFT(TRIM(date_of_birth), 2)) > 12 THEN TRY_CONVERT(DATE , TRIM(date_of_birth), 105)
1285-
ELSE TRY_CONVERT(DATE, TRIM(date_of_birth), 101)
1286-
END date_of_birth
1281+
WHEN TRIM(date_of_birth) LIKE '__/__/____' AND TRY_CONVERT(INT, SUBSTRING(TRIM(date_of_birth), 4, 2)) > 12 THEN TRY_CONVERT(DATE, TRIM(date_of_birth), 101)
1282+
WHEN TRIM(date_of_birth) LIKE '__/__/____' AND TRY_CONVERT(INT, LEFT(TRIM(date_of_birth), 2)) > 12 THEN TRY_CONVERT(DATE , TRIM(date_of_birth), 103)
12871283

1288-
,CASE
1289-
WHEN email IS NULL OR TRIM(email) = '' THEN 'Unknown'
1290-
WHEN TRIM(LOWER(email)) NOT LIKE '%@%' THEN 'Unknown'
1291-
WHEN PATINDEX('%@%@%', TRIM(LOWER(email))) > 0 THEN
1292-
LEFT(TRIM(LOWER(email)),CHARINDEX('@', TRIM(LOWER(email))) - 1)
1293-
+ '@' +
1294-
REPLACE(
1295-
SUBSTRING(
1296-
TRIM(LOWER(email)),
1297-
CHARINDEX('@', TRIM(LOWER(email))) + 1,
1298-
LEN(email)),'@','')
1299-
ELSE
1300-
CONCAT(
1301-
LEFT(TRIM(LOWER(email)),CHARINDEX('@', TRIM(LOWER(email))) - 1), '@',
1302-
CASE
1303-
WHEN RIGHT(
1304-
TRIM(LOWER(email)),
1305-
LEN(TRIM(email)) - CHARINDEX('@', TRIM(email))) = 'yahoocom' THEN 'yahoo.com'
1306-
WHEN RIGHT(
1307-
TRIM(LOWER(email)),
1308-
LEN(TRIM(email)) - CHARINDEX('@', TRIM(email))) = 'iclod.com' THEN 'icloud.com'
1309-
WHEN RIGHT(
1310-
TRIM(LOWER(email)),
1311-
LEN(TRIM(email)) - CHARINDEX('@', TRIM(email))) = 'outook.com' THEN 'outlook.com'
1312-
WHEN RIGHT(
1313-
TRIM(LOWER(email)),
1314-
LEN(TRIM(email)) - CHARINDEX('@', TRIM(email))) = 'ahoo.com' THEN 'yahoo.com'
1315-
ELSE RIGHT(
1316-
TRIM(LOWER(email)),
1317-
LEN(TRIM(email)) - CHARINDEX('@', TRIM(email)))
1318-
END
1319-
)
1320-
END AS email
1321-
1322-
,CASE
1323-
WHEN TRIM(phone) LIKE '+1__________' THEN CONCAT('+1 (', SUBSTRING(TRIM(phone), 3, 3), ') ', SUBSTRING(TRIM(phone), 6, 3),'-', SUBSTRING(TRIM(phone),9,4))
1324-
WHEN TRIM(phone) LIKE '__________' THEN CONCAT('+1 (', SUBSTRING(TRIM(phone), 1 ,3), ') ', SUBSTRING(TRIM(phone), 4 ,3), '-', SUBSTRING(TRIM(phone), 7, 4))
1325-
WHEN TRIM(phone) LIKE '___-___-____' THEN CONCAT('+1 (', SUBSTRING(TRIM(phone), 1, 3), ') ', SUBSTRING(TRIM(phone), 5, 3), SUBSTRING(TRIM(phone), 8 ,5))
1326-
WHEN TRIM(phone) LIKE '___.___.____' THEN CONCAT('+1 (', SUBSTRING(TRIM(phone), 1, 3), ') ', SUBSTRING(TRIM(phone), 5, 3), '-', SUBSTRING(TRIM(phone),9, 4))
1327-
WHEN TRIM(phone) LIKE '(___) ___-____' THEN CONCAT('+1 ', SUBSTRING(TRIM(phone), 1, 14))
1328-
WHEN TRIM(phone) IS NULL OR TRIM(phone) = '' THEN 'Unknown'
1329-
ELSE 'Unknown'
1330-
END as phone
1284+
WHEN TRIM(date_of_birth) LIKE '__-__-____' AND TRY_CONVERT(INT, SUBSTRING(TRIM(date_of_birth), 4, 2)) > 12 THEN TRY_CONVERT(DATE, TRIM(date_of_birth), 110)
1285+
WHEN TRIM(date_of_birth) LIKE '__-__-____' AND TRY_CONVERT(INT, LEFT(TRIM(date_of_birth), 2)) > 12 THEN TRY_CONVERT(DATE , TRIM(date_of_birth), 105)
1286+
ELSE TRY_CONVERT(DATE, TRIM(date_of_birth), 101)
1287+
END date_of_birth
13311288

1332-
,CASE
1333-
WHEN [address] IS NULL OR [address] = '' THEN 'Unknown'
1334-
ELSE [address]
1335-
END as address
1289+
,CASE
1290+
WHEN email IS NULL OR TRIM(email) = '' THEN 'Unknown'
1291+
WHEN TRIM(LOWER(email)) NOT LIKE '%@%' THEN 'Unknown'
1292+
WHEN PATINDEX('%@%@%', TRIM(LOWER(email))) > 0 THEN
1293+
LEFT(TRIM(LOWER(email)),CHARINDEX('@', TRIM(LOWER(email))) - 1)
1294+
+ '@' +
1295+
REPLACE(
1296+
SUBSTRING(
1297+
TRIM(LOWER(email)),
1298+
CHARINDEX('@', TRIM(LOWER(email))) + 1,
1299+
LEN(email)),'@','')
1300+
ELSE
1301+
CONCAT(
1302+
LEFT(TRIM(LOWER(email)),CHARINDEX('@', TRIM(LOWER(email))) - 1), '@',
1303+
CASE
1304+
WHEN RIGHT(
1305+
TRIM(LOWER(email)),
1306+
LEN(TRIM(email)) - CHARINDEX('@', TRIM(email))) = 'yahoocom' THEN 'yahoo.com'
1307+
WHEN RIGHT(
1308+
TRIM(LOWER(email)),
1309+
LEN(TRIM(email)) - CHARINDEX('@', TRIM(email))) = 'iclod.com' THEN 'icloud.com'
1310+
WHEN RIGHT(
1311+
TRIM(LOWER(email)),
1312+
LEN(TRIM(email)) - CHARINDEX('@', TRIM(email))) = 'outook.com' THEN 'outlook.com'
1313+
WHEN RIGHT(
1314+
TRIM(LOWER(email)),
1315+
LEN(TRIM(email)) - CHARINDEX('@', TRIM(email))) = 'ahoo.com' THEN 'yahoo.com'
1316+
ELSE RIGHT(
1317+
TRIM(LOWER(email)),
1318+
LEN(TRIM(email)) - CHARINDEX('@', TRIM(email)))
1319+
END
1320+
)
1321+
END AS email
13361322

1337-
,CASE
1338-
WHEN TRIM(LOWER(city)) = 'an diego' THEN 'san diego'
1339-
WHEN TRIM(LOWER(city)) = 'chiago' THEN 'chicago'
1340-
WHEN TRIM(LOWER(city)) = 'chrlotte' THEN 'charlotte'
1341-
WHEN TRIM(LOWER(city)) = 'dalla' THEN 'dallas'
1342-
WHEN TRIM(LOWER(city)) = 'inneapolis' THEN 'minneapolis'
1343-
WHEN TRIM(LOWER(city)) = 'louiville' THEN 'louisville'
1344-
WHEN TRIM(LOWER(city)) = 'milwakee' THEN 'milwaukee'
1345-
WHEN TRIM(LOWER(city)) = 'mnneapolis' THEN 'minneapolis'
1346-
WHEN TRIM(LOWER(city)) = 'oklahoma cty' THEN 'oklahoma city'
1347-
WHEN TRIM(LOWER(city)) = 'ortland' THEN 'portland'
1348-
WHEN TRIM(LOWER(city)) = 'sa diego' THEN 'san diego'
1349-
WHEN TRIM(LOWER(city)) = 'san ntonio' THEN 'san antonio'
1350-
WHEN TRIM(LOWER(city)) = 'sn antonio' THEN 'san antonio'
1351-
WHEN TRIM(LOWER(city)) = '' THEN 'Unknown'
1352-
WHEN TRIM(LOWER(city)) IS NULL THEN 'Unknown'
1353-
ELSE TRIM(LOWER(city))
1354-
END as city
1323+
,CASE
1324+
WHEN TRIM(phone) LIKE '+1__________' THEN CONCAT('+1 (', SUBSTRING(TRIM(phone), 3, 3), ') ', SUBSTRING(TRIM(phone), 6, 3),'-', SUBSTRING(TRIM(phone),9,4))
1325+
WHEN TRIM(phone) LIKE '__________' THEN CONCAT('+1 (', SUBSTRING(TRIM(phone), 1 ,3), ') ', SUBSTRING(TRIM(phone), 4 ,3), '-', SUBSTRING(TRIM(phone), 7, 4))
1326+
WHEN TRIM(phone) LIKE '___-___-____' THEN CONCAT('+1 (', SUBSTRING(TRIM(phone), 1, 3), ') ', SUBSTRING(TRIM(phone), 5, 3), SUBSTRING(TRIM(phone), 8 ,5))
1327+
WHEN TRIM(phone) LIKE '___.___.____' THEN CONCAT('+1 (', SUBSTRING(TRIM(phone), 1, 3), ') ', SUBSTRING(TRIM(phone), 5, 3), '-', SUBSTRING(TRIM(phone),9, 4))
1328+
WHEN TRIM(phone) LIKE '(___) ___-____' THEN CONCAT('+1 ', SUBSTRING(TRIM(phone), 1, 14))
1329+
WHEN TRIM(phone) IS NULL OR TRIM(phone) = '' THEN 'Unknown'
1330+
ELSE 'Unknown'
1331+
END as phone
13551332

1356-
,CASE
1357-
WHEN TRIM(UPPER(state_abbr)) IS NULL OR TRIM(UPPER(state_abbr)) = '' THEN 'Unknown'
1358-
WHEN LEN(TRIM(UPPER(state_abbr))) != 2 THEN 'Unknown'
1359-
ELSE TRIM(UPPER(state_abbr))
1360-
END as state_abbr
1333+
,CASE
1334+
WHEN [address] IS NULL OR [address] = '' THEN 'Unknown'
1335+
ELSE [address]
1336+
END as address
1337+
1338+
,CASE
1339+
WHEN TRIM(LOWER(city)) = 'an diego' THEN 'san diego'
1340+
WHEN TRIM(LOWER(city)) = 'chiago' THEN 'chicago'
1341+
WHEN TRIM(LOWER(city)) = 'chrlotte' THEN 'charlotte'
1342+
WHEN TRIM(LOWER(city)) = 'dalla' THEN 'dallas'
1343+
WHEN TRIM(LOWER(city)) = 'inneapolis' THEN 'minneapolis'
1344+
WHEN TRIM(LOWER(city)) = 'louiville' THEN 'louisville'
1345+
WHEN TRIM(LOWER(city)) = 'milwakee' THEN 'milwaukee'
1346+
WHEN TRIM(LOWER(city)) = 'mnneapolis' THEN 'minneapolis'
1347+
WHEN TRIM(LOWER(city)) = 'oklahoma cty' THEN 'oklahoma city'
1348+
WHEN TRIM(LOWER(city)) = 'ortland' THEN 'portland'
1349+
WHEN TRIM(LOWER(city)) = 'sa diego' THEN 'san diego'
1350+
WHEN TRIM(LOWER(city)) = 'san ntonio' THEN 'san antonio'
1351+
WHEN TRIM(LOWER(city)) = 'sn antonio' THEN 'san antonio'
1352+
WHEN TRIM(LOWER(city)) = '' THEN 'Unknown'
1353+
WHEN TRIM(LOWER(city)) IS NULL THEN 'Unknown'
1354+
ELSE TRIM(LOWER(city))
1355+
END as city
1356+
1357+
,CASE
1358+
WHEN TRIM(UPPER(state_abbr)) IS NULL OR TRIM(UPPER(state_abbr)) = '' THEN 'Unknown'
1359+
WHEN LEN(TRIM(UPPER(state_abbr))) != 2 THEN 'Unknown'
1360+
ELSE TRIM(UPPER(state_abbr))
1361+
END as state_abbr
13611362

1362-
,CASE
1363-
WHEN TRIM(state_full) IS NULL OR TRIM(state_full) = '' THEN 'Unknown'
1364-
ELSE TRIM(state_full)
1365-
END as state
1363+
,CASE
1364+
WHEN TRIM(state_full) IS NULL OR TRIM(state_full) = '' THEN 'Unknown'
1365+
ELSE TRIM(state_full)
1366+
END as state
1367+
1368+
,CASE
1369+
WHEN zip_code IS NULL THEN 0
1370+
WHEN LEN(zip_code) != 5 THEN 0
1371+
WHEN TRY_CAST(zip_code AS INT) IS NULL THEN 0
1372+
ELSE zip_code
1373+
END as zip_code
1374+
1375+
,CASE TRIM(LOWER(country))
1376+
WHEN 'u.s.a' THEN 'United States'
1377+
WHEN 'us' THEN 'United States'
1378+
WHEN 'usa' THEN 'United States'
1379+
WHEN 'united states' THEN 'United States'
1380+
ELSE 'Unknown'
1381+
END as country
13661382

1367-
,CASE
1368-
WHEN zip_code IS NULL THEN 0
1369-
WHEN LEN(zip_code) != 5 THEN 0
1370-
WHEN TRY_CAST(zip_code AS INT) IS NULL THEN 0
1371-
ELSE zip_code
1372-
END as zip_code
1383+
,CASE
1384+
WHEN region IS NULL OR TRIM(region) = '' THEN 'Unknown'
1385+
ELSE TRIM(region)
1386+
END as region
13731387

1374-
,CASE TRIM(LOWER(country))
1375-
WHEN 'u.s.a' THEN 'United States'
1376-
WHEN 'us' THEN 'United States'
1377-
WHEN 'usa' THEN 'United States'
1378-
WHEN 'united states' THEN 'United States'
1379-
ELSE 'Unknown'
1380-
END as country
1381-
1382-
,CASE
1383-
WHEN region IS NULL OR TRIM(region) = '' THEN 'Unknown'
1384-
ELSE TRIM(region)
1385-
END as region
1386-
1387-
,CASE
1388-
WHEN customer_segment IS NULL OR customer_segment = '' THEN 'Unknown'
1389-
ELSE customer_segment
1390-
END as customer_segment
1391-
1392-
,[loyalty_points]
1393-
1394-
,CASE TRIM(LOWER(is_active))
1395-
WHEN '0' THEN 'False'
1396-
WHEN '1' THEN 'True'
1397-
WHEN 'active' THEN 'True'
1398-
WHEN 'inactive' THEN 'False'
1399-
WHEN 'false' THEN 'False'
1400-
WHEN 'true' THEN 'True'
1401-
WHEN 'n' THEN 'False'
1402-
WHEN 'y' THEN 'True'
1403-
WHEN 'no' THEN 'False'
1404-
WHEN 'yes' THEN 'True'
1405-
ELSE 'Unknown'
1406-
END AS is_active
1407-
1408-
,CASE
1409-
WHEN TRIM(account_created_date) LIKE '[A-Z][a-z][a-z] __, ____' THEN CONVERT(DATE,account_created_date)
1410-
WHEN TRIM(account_created_date) LIKE '[A-Z][a-z][a-z][a-z]% __, ____' THEN CONVERT(DATE,account_created_date)
1411-
WHEN TRIM(account_created_date) LIKE '____/__/__' THEN CONVERT(DATE,account_created_date)
1412-
WHEN TRIM(account_created_date) LIKE '____-__-__' THEN CONVERT(DATE,account_created_date)
1413-
1414-
WHEN TRIM(account_created_date) LIKE '__-__-____' AND TRY_CONVERT(INT, LEFT(account_created_date,2)) > 12 THEN TRY_CONVERT(DATE, account_created_date, 105)
1415-
WHEN TRIM(account_created_date) LIKE '__-__-____' AND TRY_CONVERT(INT, SUBSTRING(account_created_date,4,2)) > 12 THEN TRY_CONVERT(DATE, account_created_date, 110)
1416-
WHEN TRIM(account_created_date) LIKE '__/__/____' AND TRY_CONVERT(INT, LEFT(account_created_date,2)) > 12 THEN TRY_CONVERT(DATE, account_created_date, 103)
1417-
WHEN TRIM(account_created_date) LIKE '__/__/____' AND TRY_CONVERT(INT, SUBSTRING(account_created_date, 4, 2)) > 12 THEN TRY_CONVERT(DATE, account_created_date, 101)
1418-
ELSE TRY_CONVERT(DATE, account_created_date,101)
1419-
END as account_created_date
1420-
1421-
,CASE TRIM(LOWER(preferred_channel))
1422-
WHEN 'app' THEN 'Mobile App'
1423-
WHEN 'mobile app' THEN 'Mobile App'
1424-
WHEN 'mobile' THEN 'Mobile App'
1425-
WHEN 'in store' THEN 'In Store'
1426-
WHEN 'in-store' THEN 'In Store'
1427-
WHEN 'store' THEN 'In Store'
1428-
WHEN 'catalog' THEN 'Catalog'
1429-
WHEN 'online' THEN 'Website'
1430-
WHEN 'web' THEN 'Website'
1431-
WHEN 'phone' THEN 'Phone Call'
1432-
ELSE 'Unknown'
1433-
END as preferred_channel
1388+
,CASE
1389+
WHEN customer_segment IS NULL OR customer_segment = '' THEN 'Unknown'
1390+
ELSE customer_segment
1391+
END as customer_segment
1392+
1393+
,loyalty_points
1394+
1395+
,CASE TRIM(LOWER(is_active))
1396+
WHEN '0' THEN 'False'
1397+
WHEN '1' THEN 'True'
1398+
WHEN 'active' THEN 'True'
1399+
WHEN 'inactive' THEN 'False'
1400+
WHEN 'false' THEN 'False'
1401+
WHEN 'true' THEN 'True'
1402+
WHEN 'n' THEN 'False'
1403+
WHEN 'y' THEN 'True'
1404+
WHEN 'no' THEN 'False'
1405+
WHEN 'yes' THEN 'True'
1406+
ELSE 'Unknown'
1407+
END AS is_active
1408+
1409+
,CASE
1410+
WHEN TRIM(account_created_date) LIKE '[A-Z][a-z][a-z] __, ____' THEN CONVERT(DATE,account_created_date)
1411+
WHEN TRIM(account_created_date) LIKE '[A-Z][a-z][a-z][a-z]% __, ____' THEN CONVERT(DATE,account_created_date)
1412+
WHEN TRIM(account_created_date) LIKE '____/__/__' THEN CONVERT(DATE,account_created_date)
1413+
WHEN TRIM(account_created_date) LIKE '____-__-__' THEN CONVERT(DATE,account_created_date)
1414+
1415+
WHEN TRIM(account_created_date) LIKE '__-__-____' AND TRY_CONVERT(INT, LEFT(account_created_date,2)) > 12 THEN TRY_CONVERT(DATE, account_created_date, 105)
1416+
WHEN TRIM(account_created_date) LIKE '__-__-____' AND TRY_CONVERT(INT, SUBSTRING(account_created_date,4,2)) > 12 THEN TRY_CONVERT(DATE, account_created_date, 110)
1417+
WHEN TRIM(account_created_date) LIKE '__/__/____' AND TRY_CONVERT(INT, LEFT(account_created_date,2)) > 12 THEN TRY_CONVERT(DATE, account_created_date, 103)
1418+
WHEN TRIM(account_created_date) LIKE '__/__/____' AND TRY_CONVERT(INT, SUBSTRING(account_created_date, 4, 2)) > 12 THEN TRY_CONVERT(DATE, account_created_date, 101)
1419+
ELSE TRY_CONVERT(DATE, account_created_date,101)
1420+
END as account_created_date
1421+
1422+
,CASE TRIM(LOWER(preferred_channel))
1423+
WHEN 'app' THEN 'Mobile App'
1424+
WHEN 'mobile app' THEN 'Mobile App'
1425+
WHEN 'mobile' THEN 'Mobile App'
1426+
WHEN 'in store' THEN 'In Store'
1427+
WHEN 'in-store' THEN 'In Store'
1428+
WHEN 'store' THEN 'In Store'
1429+
WHEN 'catalog' THEN 'Catalog'
1430+
WHEN 'online' THEN 'Website'
1431+
WHEN 'web' THEN 'Website'
1432+
WHEN 'phone' THEN 'Phone Call'
1433+
ELSE 'Unknown'
1434+
END as preferred_channel
14341435

1435-
,COALESCE(
1436-
annual_income_usd,
1437-
PERCENTILE_CONT(0.5)
1438-
WITHIN GROUP (ORDER BY annual_income_usd)
1439-
OVER (PARTITION BY customer_segment)
1440-
) as annual_income_usd
1441-
1442-
,CASE
1443-
WHEN company IS NULL OR company = '' THEN 'Unknown'
1444-
WHEN TRIM(REPLACE(REPLACE(company, CHAR(13), ''), CHAR(10), '')) = '' THEN 'Unknown'
1445-
ELSE TRIM(REPLACE(REPLACE(company, CHAR(13), ''), CHAR(10), ''))
1446-
END as company
1436+
,COALESCE(
1437+
annual_income_usd,
1438+
PERCENTILE_CONT(0.5)
1439+
WITHIN GROUP (ORDER BY annual_income_usd)
1440+
OVER (PARTITION BY customer_segment)
1441+
) as annual_income_usd
1442+
1443+
,CASE
1444+
WHEN company IS NULL OR company = '' THEN 'Unknown'
1445+
WHEN TRIM(REPLACE(REPLACE(company, CHAR(13), ''), CHAR(10), '')) = '' THEN 'Unknown'
1446+
ELSE TRIM(REPLACE(REPLACE(company, CHAR(13), ''), CHAR(10), ''))
1447+
END as company
14471448
FROM [bronze].[customers]

0 commit comments

Comments
 (0)