Loading...
Loading...
Overview of LookML field types (Dimension, Measure, Filter, Parameter) and the role of the `sql` parameter in each. Use this skill to choose the right field type for your data modeling needs.
npx skill4agent add lkrdev/lookml_skills lookml-fields| Field Type | Purpose | SQL Generation Phase |
|---|---|---|
| Dimension | Describes data (attributes). Groups results. | |
| Measure | Aggregates data (metrics). Calculates results. | |
| Filter | Restricts data based on conditions. | |
| Parameter | Captures user input for dynamic logic. | None directly (injects values into other fields). |
| Dimension Group | Generates a set of time-based dimensions. | |
sqlsqlGROUP BY${TABLE}.col${dim}dimension: full_name {
sql: CONCAT(${first_name}, ' ', ${last_name}) ;;
}
-- Generates: CONCAT(table.first_name, ' ', table.last_name)SUM(sql)type: numbertype: sum/avg/min/maxtype: numbertype: countsqlCOUNT(*)COUNT(primary_key)measure: total_profit {
type: sum
sql: ${sale_price} - ${cost} ;;
}
-- Generates: SUM(sale_price - cost)sql_always_wheresqlfilter{% condition %}filterparameterdimensionfilter: date_filter { type: date }
-- Usage in Derived Table SQL:
-- WHERE {% condition date_filter %} created_at {% endcondition %}{% parameter name %}parameter: timeframe_selector {
type: unquoted
allowed_value: { value: "month" }
allowed_value: { value: "year" }
}
dimension: dynamic_date {
sql: DATE_TRUNC({% parameter timeframe_selector %}, ${created_raw}) ;;
}timeframesdimension_group: created {
type: time
timeframes: [date, month]
sql: ${TABLE}.created_at ;;
}
-- Generates:
-- created_date -> CAST(table.created_at AS DATE)
-- created_month -> DATE_TRUNC(table.created_at, MONTH)| Type | | Can reference Measures? | Aggregated? |
|---|---|---|---|
| Dimension | Columns, Other Dimensions | NO | No |
| Measure (Agg) | Columns, Dimensions | NO | Yes |
| Measure (Num) | Other Measures | YES | Yes (already agg) |
| Filter | (Rarely used) | No | N/A |
| Parameter | (None) | No | N/A |
| Value Format | (None) | No | N/A |