cubes:
- name: nested_agg_sales
sql: |
SELECT 1 AS id, 1 AS store_id, 1 AS product_id, 10 AS sales UNION ALL
SELECT 2 AS id, 1 AS store_id, 1 AS product_id, 20 AS sales UNION ALL
SELECT 3 AS id, 1 AS store_id, 2 AS product_id, 30 AS sales UNION ALL
SELECT 4 AS id, 1 AS store_id, 2 AS product_id, 40 AS sales UNION ALL
SELECT 5 AS id, 2 AS store_id, 1 AS product_id, 50 AS sales UNION ALL
SELECT 6 AS id, 2 AS store_id, 1 AS product_id, 60 AS sales UNION ALL
SELECT 7 AS id, 2 AS store_id, 2 AS product_id, 70 AS sales UNION ALL
SELECT 8 AS id, 2 AS store_id, 2 AS product_id, 80 AS sales
dimensions:
- name: id
sql: id
type: number
primary_key: true
- name: store_id
sql: store_id
type: number
- name: product_id
sql: product_id
type: number
- name: store_product_id
sql: "CONCAT({store_id}, '-', {product_id})"
type: string
measures:
- name: sales
sql: sales
type: sum
- name: nested_agg_stores_orders
sql: |
SELECT store_id, product_id
FROM (
SELECT 1 AS id, 1 AS store_id, 1 AS product_id, 10 AS sales UNION ALL
SELECT 2 AS id, 1 AS store_id, 1 AS product_id, 20 AS sales UNION ALL
SELECT 3 AS id, 1 AS store_id, 2 AS product_id, 30 AS sales UNION ALL
SELECT 4 AS id, 1 AS store_id, 2 AS product_id, 40 AS sales UNION ALL
SELECT 5 AS id, 2 AS store_id, 1 AS product_id, 50 AS sales UNION ALL
SELECT 6 AS id, 2 AS store_id, 1 AS product_id, 60 AS sales UNION ALL
SELECT 7 AS id, 2 AS store_id, 2 AS product_id, 70 AS sales UNION ALL
SELECT 8 AS id, 2 AS store_id, 2 AS product_id, 80 AS sales
) AS raw
GROUP BY 1, 2
joins:
- name: nested_agg_sales
sql: "{nested_agg_stores_orders.store_product_id} = {nested_agg_sales.store_product_id}"
relationship: one_to_many
dimensions:
- name: store_id
sql: store_id
type: number
- name: product_id
sql: product_id
type: number
- name: store_product_id
sql: "CONCAT({store_id}, '-', {product_id})"
type: string
primary_key: true
- name: sales_sum
sql: "{nested_agg_sales.sales}"
type: number
sub_query: true
measures:
- name: median_sales
sql: "PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY {sales_sum})"
type: number