Skip to content

Commit 7531007

Browse files
feat(dbt): add intermediate product transformation models
1 parent 9889507 commit 7531007

1 file changed

Lines changed: 56 additions & 11 deletions

File tree

Lines changed: 56 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,56 @@
1-
SELECT
2-
product_id,
3-
sku,
4-
product_name,
5-
brand,
6-
category,
7-
sub_category,
8-
department,
9-
launched_date,
10-
product_url
11-
FROM {{ ref('stg_products') }} ;
1+
2+
SELECT
3+
CASE
4+
WHEN TRY_CONVERT(INT, product_id) IS NULL THEN NULL
5+
ELSE TRY_CONVERT(INT, product_id)
6+
END as product_id,
7+
8+
CASE
9+
WHEN TRIM(sku) = '' OR sku IS NULL OR LEN(TRIM(sku)) != 13 THEN 'Unknown'
10+
ELSE TRIM(UPPER(sku))
11+
END as sku,
12+
13+
CASE
14+
WHEN TRIM(product_name) = '' OR product_name IS NULL THEN 'Unknown'
15+
ELSE TRIM(dbo.TitleCase(product_name))
16+
END as product_name,
17+
18+
CASE
19+
WHEN TRIM(brand) = '' OR brand IS NULL THEN 'Unknown'
20+
ELSE TRIM(dbo.TitleCase(brand))
21+
END as brand,
22+
23+
CASE
24+
WHEN category IS NULL OR TRIM(category) = '' THEN 'Unknown'
25+
ELSE TRIM(dbo.titleCase(category))
26+
END AS category,
27+
28+
CASE
29+
WHEN sub_category IS NULL OR TRIM(sub_category) = '' THEN 'Unknown'
30+
ELSE dbo.TitleCase(TRIM(sub_category))
31+
END AS sub_category,
32+
33+
CASE
34+
WHEN department IS NULL OR TRIM(department) = '' THEN 'Unknown'
35+
ELSE dbo.TitleCase(TRIM(department))
36+
END AS department,
37+
38+
CASE
39+
WHEN launched_date LIKE '[A-Z][a-z][a-z][a-z] __, ____' THEN TRY_CONVERT(DATE ,launched_date)
40+
WHEN launched_date LIKE '[A-Z][a-z][a-z] __, ____' THEN TRY_CONVERT(DATE ,launched_date)
41+
WHEN launched_date LIKE '____/__/__' THEN TRY_CONVERT(DATE ,launched_date)
42+
WHEN launched_date LIKE '____-__-__' THEN TRY_CONVERT(DATE ,launched_date)
43+
44+
WHEN launched_date LIKE '__/__/____' AND TRY_CONVERT(INT, SUBSTRING(launched_date, 4, 2)) > 12 THEN TRY_CONVERT(DATE, launched_date, 101)
45+
WHEN launched_date LIKE '__-__-____' AND TRY_CONVERT(INT, SUBSTRING(launched_date, 4, 2)) > 12 THEN TRY_CONVERT(DATE, launched_date, 110)
46+
WHEN launched_date LIKE '__/__/____' AND TRY_CONVERT(INT, LEFT(launched_date, 2)) > 12 THEN TRY_CONVERT(DATE, launched_date, 103)
47+
WHEN launched_date LIKE '__-__-____' AND TRY_CONVERT(INT, LEFT(launched_date, 2)) > 12 THEN TRY_CONVERT(DATE, launched_date, 105)
48+
ELSE TRY_CONVERT(DATE, launched_date)
49+
END as launched_date,
50+
51+
CASE
52+
WHEN product_url IS NULL OR TRIM(product_url) = '' OR product_url NOT LIKE 'https://%' THEN 'Unknown'
53+
ELSE REPLACE(REPLACE(TRIM(LOWER(product_url)), CHAR(13), ''),CHAR(10), '')
54+
END as product_url
55+
FROM {{ ref('stg_products') }} ;
56+

0 commit comments

Comments
 (0)