185 lines
7.1 KiB
JSON
185 lines
7.1 KiB
JSON
{
|
|
"name": "schema1",
|
|
"label": "test schema1",
|
|
"pg_dsn": "fixme",
|
|
"search_path": ["schema1"],
|
|
"cubes": [
|
|
{
|
|
"name": "facts1",
|
|
"label": "Facts 1",
|
|
"fact_table": "facts",
|
|
"key": "id",
|
|
"joins": [
|
|
{
|
|
"name": "innersubcategory",
|
|
"table": "subcategory",
|
|
"master": "innersubcategory_id",
|
|
"detail": "id",
|
|
"kind": "inner"
|
|
},
|
|
{
|
|
"name": "leftsubcategory",
|
|
"table": "subcategory",
|
|
"master": "leftsubcategory_id",
|
|
"detail": "id",
|
|
"kind": "left"
|
|
},
|
|
{
|
|
"name": "rightsubcategory",
|
|
"table": "subcategory",
|
|
"master": "rightsubcategory_id",
|
|
"detail": "id",
|
|
"kind": "right"
|
|
},
|
|
{
|
|
"name": "outersubcategory",
|
|
"table": "subcategory",
|
|
"master": "outersubcategory_id",
|
|
"detail": "id",
|
|
"kind": "full"
|
|
},
|
|
{
|
|
"name": "innercategory",
|
|
"table": "category",
|
|
"master": "innersubcategory.category_id",
|
|
"detail": "id",
|
|
"kind": "inner"
|
|
},
|
|
{
|
|
"name": "leftcategory",
|
|
"table": "category",
|
|
"master": "leftsubcategory.category_id",
|
|
"detail": "id",
|
|
"kind": "left"
|
|
},
|
|
{
|
|
"name": "rightcategory",
|
|
"table": "category",
|
|
"master": "rightsubcategory.category_id",
|
|
"detail": "id",
|
|
"kind": "right"
|
|
},
|
|
{
|
|
"name": "outercategory",
|
|
"table": "category",
|
|
"master": "outersubcategory.category_id",
|
|
"detail": "id",
|
|
"kind": "full"
|
|
}
|
|
],
|
|
"dimensions": [
|
|
{
|
|
"name": "date",
|
|
"label": "Date",
|
|
"type": "date",
|
|
"value": "date"
|
|
},
|
|
{
|
|
"name": "boolean",
|
|
"label": "Boolean",
|
|
"type": "bool",
|
|
"value": "boolean"
|
|
},
|
|
{
|
|
"name": "hour",
|
|
"type": "integer",
|
|
"label": "Hour",
|
|
"value": "EXTRACT(hour from datetime)"
|
|
},
|
|
{
|
|
"name": "innersubcategory",
|
|
"label": "Inner SubCategory",
|
|
"type": "integer",
|
|
"join": ["innercategory", "innersubcategory"],
|
|
"value": "innersubcategory.id",
|
|
"order_by": ["innercategory.ord", "innersubcategory.ord", "innersubcategory.label"],
|
|
"value_label": "innersubcategory.label"
|
|
},
|
|
{
|
|
"name": "leftsubcategory",
|
|
"label": "Left SubCategory",
|
|
"type": "integer",
|
|
"join": ["leftcategory", "leftsubcategory"],
|
|
"value": "leftsubcategory.id",
|
|
"order_by": ["leftcategory.ord", "leftsubcategory.ord", "leftsubcategory.label"],
|
|
"value_label": "leftsubcategory.label"
|
|
},
|
|
{
|
|
"name": "rightsubcategory",
|
|
"label": "Right SubCategory",
|
|
"type": "integer",
|
|
"join": ["rightcategory", "rightsubcategory"],
|
|
"value": "rightsubcategory.id",
|
|
"order_by": ["rightcategory.ord", "rightsubcategory.ord", "rightsubcategory.label"],
|
|
"value_label": "rightsubcategory.label"
|
|
},
|
|
{
|
|
"name": "outersubcategory",
|
|
"label": "Outer SubCategory",
|
|
"type": "integer",
|
|
"join": ["outercategory", "outersubcategory"],
|
|
"value": "outersubcategory.id",
|
|
"order_by": ["outercategory.ord", "outersubcategory.ord", "outersubcategory.label"],
|
|
"value_label": "outersubcategory.label"
|
|
},
|
|
{
|
|
"name": "innercategory",
|
|
"label": "Inner Category",
|
|
"type": "integer",
|
|
"join": ["innersubcategory", "innercategory"],
|
|
"value": "innercategory.id",
|
|
"order_by": "innercategory.ord",
|
|
"value_label": "innercategory.label"
|
|
},
|
|
{
|
|
"name": "leftcategory",
|
|
"label": "Left Category",
|
|
"type": "integer",
|
|
"join": ["leftsubcategory", "leftcategory"],
|
|
"value": "leftcategory.id",
|
|
"order_by": "leftcategory.ord",
|
|
"value_label": "leftcategory.label"
|
|
},
|
|
{
|
|
"name": "rightcategory",
|
|
"label": "Right Category",
|
|
"type": "integer",
|
|
"join": ["rightsubcategory", "rightcategory"],
|
|
"value": "rightcategory.id",
|
|
"order_by": "rightcategory.ord",
|
|
"value_label": "rightcategory.label"
|
|
},
|
|
{
|
|
"name": "outercategory",
|
|
"label": "Outer Category",
|
|
"type": "integer",
|
|
"join": ["outersubcategory", "outercategory"],
|
|
"value": "outercategory.id",
|
|
"order_by": "outercategory.ord",
|
|
"value_label": "outercategory.label"
|
|
}
|
|
],
|
|
"measures": [
|
|
{
|
|
"name": "simple_count",
|
|
"label": "number of rows",
|
|
"type": "integer",
|
|
"expression": "count({fact_table}.id)"
|
|
},
|
|
{
|
|
"name": "aggregated_count",
|
|
"label": "sum of cnt",
|
|
"type": "integer",
|
|
"expression": "sum(cnt)"
|
|
},
|
|
{
|
|
"name": "percent",
|
|
"label": "pourcentage des demandes",
|
|
"type": "percent",
|
|
"expression": "case (select count({fact_table}.id) from {table_expression} where {where_conditions}) when 0 then null else count({fact_table}.id) * 100. / (select count({fact_table}.id) from {table_expression} where {where_conditions}) end"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|