Files
dbt_cloud/models/exchange/marts/warehouse/fct_exchange__booking_logs.sql
T
2023-03-28 23:57:11 +08:00

82 lines
1.7 KiB
SQL

-- IMPORTS
WITH booking_logs AS (
SELECT * FROM {{ ref('int_exchange__booking_logs_get_estimate_rates') }}
),
-- LOGICS
first_time_user_booking_id AS (
SELECT
booking_id,
user_id,
created_at,
row_number() OVER
(PARTITION BY booking_logs.user_id
ORDER BY booking_logs.created_at) AS cummulative_count_booking
FROM
booking_logs
GROUP BY
booking_id,
user_id,
created_at
QUALIFY
cummulative_count_booking = 1
),
first_time_company_booking_id AS (
SELECT
booking_id,
company_id,
created_at,
row_number() OVER
(PARTITION BY booking_logs.company_id
ORDER BY booking_logs.created_at) AS cummulative_count_booking
FROM
booking_logs
GROUP BY
booking_id,
company_id,
created_at
QUALIFY
cummulative_count_booking = 1
),
booking_logs_lists AS (
SELECT
booking_logs.*,
IFF(first_time_user_booking_id.booking_id IS NOT NULL, 1, 0) AS is_first_time_user,
IFF(first_time_company_booking_id.booking_id IS NOT NULL, 1, 0) AS is_first_time_company
FROM
booking_logs
LEFT JOIN first_time_user_booking_id
ON (booking_logs.booking_id = first_time_user_booking_id.booking_id)
LEFT JOIN first_time_company_booking_id
ON (booking_logs.booking_id = first_time_company_booking_id.booking_id)
ORDER BY
created_at
),
-- FINAL
final_fct_exchange__booking_logs AS (
SELECT
*
FROM booking_logs_lists
)
SELECT * FROM final_fct_exchange__booking_logs