cube(`order_items`, {
sql_table: `ECOMMERCE.ORDER_ITEMS`,
measures: {
count: {
type: `count`
},
total_sale_price: {
sql: `sale_price`,
type: `sum`
}
},
dimensions: {
id: {
sql: `id`,
type: `number`,
primary_key: true
},
status: {
sql: `status`,
type: `string`
},
created_at: {
sql: `created_at`,
type: `time`
}
}
})
cube(`users`, {
sql_table: `ECOMMERCE.USERS`,
measures: {
count: {
type: `count`
}
},
dimensions: {
id: {
sql: `id`,
type: `number`,
primary_key: true
},
city: {
sql: `city`,
type: `string`
}
}
})
view(`orders_overview`, {
cubes: [
{
join_path: order_items,
includes: [
`count`,
`total_sale_price`,
`status`,
`created_at`
]
}
]
})
view(`revenue`, {
cubes: [
{
join_path: order_items,
includes: [
`total_sale_price`,
`created_at`
]
}
]
})
view(`customers_view`, {
cubes: [
{
join_path: users,
includes: `*`
}
]
})
view_group(`sales`, {
title: `Sales`,
description: `Revenue and order views for the sales team`,
includes: [`orders_overview`, `revenue`]
})
view_group(`people`, {
title: `People`,
description: `Customer and user views`,
includes: [`customers_view`]
})