cubes:
- name: users_with_organizations
sql: |
WITH users AS (
SELECT
md5(company) AS organization_id,
id AS user_id,
created_at
FROM public.users
), organizations AS (
(
SELECT
md5(company) AS id,
company AS name,
MIN(created_at)
FROM
public.users
GROUP BY
1,
2
)
) SELECT
users.*,
organizations.name AS org_name
FROM
users
LEFT JOIN organizations
ON users.organization_id = organizations.id
pre_aggregations:
- name: main
dimensions:
- id
- organization_id
time_dimension: created_at
refresh_key:
every: 1 day
incremental: true
granularity: day
partition_granularity: month
build_range_start:
sql: SELECT DATE('2021-01-01')
build_range_end:
sql: SELECT NOW()
dimensions:
- name: id
sql: user_id
type: number
primary_key: true
- name: organization_id
sql: organization_id
type: string
- name: created_at
sql: created_at
type: time