@@ -534,6 +534,64 @@ SELECT
534534stock_on_hand * unit_price as inventory_value
535535FROM calc_inventory_value ;
536536
537+ -- =============================================================================================
538+ -- =============================== warehouse_location column cleaning =========================
539+ -- =============================================================================================
540+ -- warehouse_location data overview
541+ SELECT
542+ warehouse_location
543+ FROM bronze .inventory_snapshots ;
544+
545+ -- warehouse_location unique data overview
546+ SELECT DISTINCT
547+ warehouse_location
548+ FROM bronze .inventory_snapshots ;
549+
550+ -- warehouse_location case-sensitive data profiling
551+ SELECT DISTINCT
552+ UPPER (warehouse_location) COLLATE Latin1_General_CS_AS as warehouse_location
553+ FROM bronze .inventory_snapshots ;
554+
555+ -- warehouse_location data profiling and standardization
556+ SELECT
557+ CASE
558+ WHEN warehouse_location IS NULL OR warehouse_location = ' ' THEN ' Unknown'
559+ ELSE UPPER (warehouse_location)
560+ END as warehouse_location
561+ FROM bronze .inventory_snapshots ;
562+
563+ -- =============================================================================================
564+ -- ================================= store_id column cleaning =================================
565+ -- =============================================================================================
566+ -- store_id data overview
567+ SELECT
568+ store_id
569+ FROM bronze .inventory_snapshots ;
570+
571+ -- store_id data profiling
572+ SELECT
573+ store_id
574+ FROM bronze .inventory_snapshots
575+ WHERE store_id IS NULL OR store_id = ' '
576+ OR TRY_CONVERT(INT , store_id) IS NULL ;
577+
578+ -- store id distribution analysis
579+ SELECT
580+ store_id,
581+ COUNT (* ) store_id_count,
582+ CAST(ROUND(COUNT (* )* 100 .0 / SUM (COUNT (* )) OVER(), 2 ) AS NVARCHAR) + ' %' as percentages
583+ FROM bronze .inventory_snapshots
584+ GROUP BY store_id
585+ ORDER BY store_id_count DESC ;
586+
587+ -- store_id cleaning and standardization
588+ SELECT
589+ CASE
590+ WHEN store_id IS NULL OR store_id = ' ' THEN NULL
591+ ELSE TRY_CONVERT(INT , store_id)
592+ END as store_id
593+ FROM bronze .inventory_snapshots ;
594+
537595-- #############################################################################################
538596-- ############################## EMPLOYEE CLEAN DATA ##########################################
539597-- #############################################################################################
614672 END as reorder_level
615673
616674 ,CASE
617- WHEN unit_cost LIKE ' $%' THEN SUBSTRING (unit_cost, 2 , LEN(unit_cost))
675+ WHEN unit_cost LIKE ' $%' THEN TRY_CONVERT( DECIMAL ( 10 , 2 ), SUBSTRING (unit_cost, 2 , LEN(unit_cost) ))
618676 ELSE TRY_CONVERT(DECIMAL (10 , 2 ), unit_cost)
619677 END as unit_cost
620678
@@ -623,7 +681,10 @@ FROM
623681 ELSE TRY_CONVERT(DECIMAL (10 , 2 ), unit_price)
624682 END as unit_price
625683
626- ,[warehouse_location]
684+ ,CASE
685+ WHEN warehouse_location IS NULL OR warehouse_location = ' ' THEN ' Unknown'
686+ ELSE UPPER (warehouse_location)
687+ END as warehouse_location
627688
628689 ,[store_id]
629690
0 commit comments