mirror of
https://gitlab.com/cief-data/dbt_cloud.git
synced 2026-08-19 12:24:04 +00:00
Merge branch 'compile_company_dimension_for_dedupe' into 'main'
Use in dedupe to remove duplicate See merge request cief-data/dbt_cloud!10
This commit is contained in:
@@ -0,0 +1,129 @@
|
||||
-- IMPORTS
|
||||
WITH company_lists AS (
|
||||
SELECT * FROM {{ ref('rep_exchange__company_lists') }}
|
||||
),
|
||||
|
||||
companies AS (
|
||||
SELECT * FROM {{ ref('dim_exchange__companies') }}
|
||||
),
|
||||
|
||||
users AS (
|
||||
SELECT * FROM {{ ref('dim_exchange__users') }}
|
||||
),
|
||||
|
||||
company_addresses AS (
|
||||
SELECT * FROM {{ source('src_exchange_mysql', 'addresses') }}
|
||||
),
|
||||
|
||||
countries AS (
|
||||
SELECT * FROM {{ ref('base_exchange__countries') }}
|
||||
),
|
||||
|
||||
states AS (
|
||||
SELECT * FROM {{ ref('base_exchange__states') }}
|
||||
),
|
||||
|
||||
districts AS (
|
||||
SELECT * FROM {{ ref('base_exchange__districts') }}
|
||||
),
|
||||
|
||||
-- LOGIC
|
||||
concat_addresses AS (
|
||||
|
||||
SELECT
|
||||
company_addresses.company_id,
|
||||
CONCAT(company_addresses.street_one, ' ', company_addresses.street_two,' ', company_addresses.postcode,' ', districts.name,' ', states.name,' ', countries.name ) AS full_address
|
||||
|
||||
FROM company_addresses
|
||||
|
||||
LEFT JOIN countries
|
||||
ON (company_addresses.country_id = countries.country_id)
|
||||
|
||||
LEFT JOIN states
|
||||
ON (company_addresses.state_id = states.state_id)
|
||||
|
||||
LEFT JOIN districts
|
||||
ON (company_addresses.district_id = districts.district_id)
|
||||
),
|
||||
|
||||
concat_addresses_group_by AS (
|
||||
|
||||
SELECT
|
||||
company_id,
|
||||
ARRAY_AGG(full_address) WITHIN GROUP (ORDER BY full_address) AS agg_address
|
||||
|
||||
FROM concat_addresses
|
||||
GROUP BY company_id
|
||||
|
||||
),
|
||||
|
||||
concat_users_group_by AS (
|
||||
|
||||
SELECT
|
||||
company_id,
|
||||
ARRAY_AGG(DISTINCT name) WITHIN GROUP (ORDER BY name) AS agg_user_name,
|
||||
ARRAY_AGG(DISTINCT email) WITHIN GROUP (ORDER BY email) AS agg_user_email,
|
||||
LISTAGG(DISTINCT user_type) WITHIN GROUP (ORDER BY user_type) AS agg_user_type
|
||||
|
||||
FROM users
|
||||
GROUP BY company_id
|
||||
),
|
||||
|
||||
|
||||
final AS (
|
||||
|
||||
SELECT
|
||||
companies.company_id,
|
||||
companies.company_marking_id,
|
||||
companies.autocount_id,
|
||||
companies.name,
|
||||
companies.company_type,
|
||||
companies.business_type,
|
||||
companies.exchange_rate_segment,
|
||||
companies.status,
|
||||
companies.contact_name,
|
||||
companies.contact_phone,
|
||||
companies.contact_email,
|
||||
companies.contact_wechat,
|
||||
companies.country_name,
|
||||
companies.state_name,
|
||||
companies.district_name,
|
||||
companies.postcode,
|
||||
companies.address_line_one,
|
||||
companies.address_line_two,
|
||||
companies.identity_document_type,
|
||||
companies.identity_reference,
|
||||
companies.google_returned_address,
|
||||
companies.google_api_extracted_phone_number,
|
||||
companies.location_website,
|
||||
|
||||
company_lists.is_migrated_company,
|
||||
company_lists.is_wrong_created_datetime_company,
|
||||
company_lists.is_never_order_company,
|
||||
company_lists.is_churn_company,
|
||||
company_lists.count_order,
|
||||
company_lists.count_completed_order,
|
||||
company_lists.create_to_churn_day,
|
||||
company_lists.company_created_datetime,
|
||||
company_lists.last_order_datetime,
|
||||
company_lists.last_activity_datetime,
|
||||
|
||||
concat_addresses_group_by.agg_address AS grouped_full_address,
|
||||
concat_users_group_by.agg_user_name AS agg_user_name,
|
||||
concat_users_group_by.agg_user_email AS agg_user_email,
|
||||
concat_users_group_by.agg_user_type AS agg_user_type
|
||||
|
||||
|
||||
FROM companies
|
||||
|
||||
LEFT JOIN company_lists
|
||||
ON (companies.company_id = company_lists.company_id)
|
||||
|
||||
LEFT JOIN concat_addresses_group_by
|
||||
ON (companies.company_id = concat_addresses_group_by.company_id)
|
||||
|
||||
LEFT JOIN concat_users_group_by
|
||||
ON (companies.company_id = concat_users_group_by.company_id)
|
||||
)
|
||||
|
||||
SELECT * FROM final
|
||||
Reference in New Issue
Block a user