Resumen
Esta página está pensada para los casos excepcionales en los que el Catálogo de Analytics no incluye la métrica que necesitas; por ejemplo, un recuento con un filtro muy específico o una operación aritmética con dos datos que aún no se han configurado. Deberás escribir la métrica faltante en MAQL , el lenguaje de fórmulas que Alvys Reports utiliza para las medidas.
💡 Consulta primero el Catálogo. El Catálogo de Analytics de tu inquilino es muy completo: cientos de métricas predefinidas que abarcan viajes, ingresos, costes, puntualidad, kilómetros, conductores y mucho más. Antes de crear una métrica personalizada, busca en el Catálogo: es muy probable que la métrica que necesitas ya esté allí. Consulta «Crear visualizaciones arrastrando y soltando» para ver un tutorial sobre cómo hacerlo.
En resumen: una métrica es una fórmula que transforma los datos numéricos en un valor calculado; por ejemplo, "ingresos totales de este mes" o "tasa de entregas a tiempo". Las métricas se almacenan en el Catálogo de análisis y se pueden reutilizar en cualquier visualización.
MAQL es el lenguaje de fórmulas para medidas. Se parece un poco a SQL, pero se mantiene dentro del Diseñador de Visualizaciones.
Inicio rápido: escribe tu primera métrica personalizada
Abra el editor de métricas
En el panel de configuración, dentro de la sección Métricas, haga clic en + y seleccione Nueva métrica . La barra de fórmulas se abrirá sobre el lienzo.
📷 Captura de pantalla: Diseñador de visualización: barra de fórmulas abierta sobre el lienzo, lista para una expresión MAQL.
Escribe una suma simple
Cada métrica MAQL comienza con SELECT . La más sencilla hace referencia directamente a una métrica existente:
SELECT {metric/trip_count_all} Esto devuelve el número total de viajes, segmentado según los atributos que aparezcan en la visualización.
Para seleccionar una referencia, escriba { y el editor ofrecerá autocompletado desde el catálogo de su inquilino (métricas, hechos, atributos y etiquetas). Seleccione el elemento que desee y el editor insertará la referencia completa.
Filtrar dentro de la métrica
Para restringir la métrica a un subconjunto, utilice WHERE :
SELECT {metric/trip_count_all} WHERE {label/load_origin_state.load_origin_state} = "US-TX" Esto devuelve el número de viajes en los que la carga se origina en Texas. Use IN ("US-TX","US-CA","US-FL") para que coincidan varios estados a la vez.
Comparar con un período anterior
Para comparar este período con el anterior, combine FOR Previous(...) con una etiqueta de fecha:
SELECT {metric/trip_count_all} FOR Previous({label/load_created_at.year}) WHERE {label/load_origin_state.load_origin_state} = "US-TX" Esto devuelve el número de viajes del año anterior, filtrado para mostrar solo los viajes con origen en Texas. El eje temporal actual de la visualización (año, trimestre o mes) determina qué significa realmente "anterior".
Guarda la métrica
Haz clic en Guardar en la barra de fórmulas. Asigna un nombre claro a la métrica, como Ingresos — Solo Texas . Ahora se encuentra en el Catálogo de análisis de tu inquilino y se puede reutilizar en diferentes visualizaciones.
⚠️ Las métricas personalizadas son visibles para todos los inquilinos. Al igual que las visualizaciones guardadas, las métricas personalizadas se comparten con todos los usuarios que tienen acceso al Diseñador de visualizaciones en su inquilino. Asígneles nombres claros.
Algunas fórmulas de ejemplo más
Una vez que domines los conceptos básicos, MAQL puede ser muy expresivo. Aquí tienes ejemplos reales de paneles de control seleccionados por Alvys.
Recuento de todos los identificadores de viaje:
SELECT COUNT({label/TRIPS.TRIP_ID}) Viajes por conductor : una relación entre dos métricas existentes:
SELECT {metric/operational_trip_count_excluding_cancelled_tonu} / {metric/operational_trip_driver_count} Retraso promedio en la entrega : solo se contabilizan los envíos que realmente se retrasaron:
SELECT AVG( CASE WHEN {metric/trip_late_minutes} > 0 THEN {metric/trip_late_minutes} END ) Recuento de conductores activos : filtro por etiqueta booleana:
SELECT COUNT({label/driver_id}) WHERE {label/ACTIVE_ASSET} = "true" Estas son buenas formas para usar como modelo: copia una, cambia las referencias de métricas o etiquetas según la pregunta que estés formulando y guarda el resultado.
Consejos
Nombre las métricas personalizadas para la audiencia. "Ingresos YoY %" se lee mejor que "rev_yoy_pct".
Pruebe la misma métrica en varias segmentaciones antes de guardar : MAQL tiene en cuenta el contexto y el número puede cambiar dependiendo de los atributos que aparezcan en la visualización.
Referencia de función
El resto de esta página contiene el catálogo completo de funciones MAQL que puede utilizar en la barra de fórmulas.
💡 Los ejemplos a continuación utilizan nombres ilustrativos como {fact/revenue} y {attribute/year} para mostrar la sintaxis de MAQL. El catálogo real de su inquilino utiliza nombres reales; la función de autocompletar del editor ( { la activa) le muestra lo que está disponible.
Sintaxis básica
Cada métrica MAQL comienza con SELECT . El orden de las cláusulas es alfabético: BY , WHERE , WITHOUT .
SELECT <expression> [BY <attribute>] [WHERE <filter>]
Las referencias están encerradas entre { ... } :
{fact/<id>}— una columna numérica sin procesar de su conjunto de datos.{metric/<id>}— una métrica guardada existente.{attribute/<id>}— un atributo categórico.{label/<id>}— una etiqueta textual de un atributo (utilizada en valores de filtro).
Aritmética: + - * / . Las cadenas usan comillas dobles. Los comentarios comienzan con # .
Agregación
Función | Firma | Lo que hace |
|
| Suma de todos los valores |
|
| Media aritmética |
|
| Valor más pequeño |
|
| Valor más alto |
|
| Recuento de valores de atributos distintos |
|
| Mediana |
|
| Recuento aproximado rápido de valores distintos para grandes conjuntos de datos. |
SELECT SUM({fact/revenue}) SELECT COUNT({attribute/load_id})Matemáticas
Función | Lo que hace |
| Valor absoluto |
| Redondear a |
| Redondear al siguiente número entero |
| Redondear hacia abajo al siguiente número entero |
|
|
| Raíz cuadrada |
| tronco natural |
| Registro en base 10 |
| e^x |
| El mayor de los argumentos |
| El más pequeño de los argumentos |
| -1, 0 o 1 |
| Truncar hacia cero |
Lógica condicional
SI / ENTONCES / SI NO
SELECT IF <condition> THEN <expr_if_true> ELSE <expr_if_false> END
CASO
SELECT CASE WHEN <condition_1> THEN <expr_1> WHEN <condition_2> THEN <expr_2> ELSE <expr_else> END
Si no se proporciona ningún ELSE y nada coincide, el resultado es null .
⚠️ Regla de multidimensionalidad. Envuelva CASE / IF dentro de SUM(...) cuando la condición WHEN haga referencia a un atributo que no esté en la visualización. De lo contrario, la fórmula fallará.
Filtrado — DÓNDE / TENIENDO / COMO / Clasificación
DÓNDE — filtrar por valores de etiquetas de atributos:
SELECT {metric/revenue} WHERE {label/state} IN ("TX", "CA") SELECT {metric/revenue} WHERE {label/year} = "2026" AND {label/month} = "5" SELECT {metric/revenue} WHERE NOT ({label/state} = "TX") LIKE — coincidencia de patrones en etiquetas:
SELECT {metric/revenue} WHERE {label/customer_name} LIKE "Acme%" % coincide con cualquier secuencia; _ coincide con un solo carácter.
HAVING — filtrar por resultados de métricas agregadas:
SELECT SUM({fact/revenue}) HAVING SUM({fact/revenue}) > 10000 Clasificación : conservar solo los números superiores e inferiores:
SELECT SUM({fact/revenue}) WHERE TOP(5) IN (SELECT SUM({fact/revenue}) BY {attribute/customer})Operadores lógicos
AND,OR,NOTIN ( ... )para la pertenencia a la listaNOT IN ( ... )para la pertenencia a la lista negadaComparación:
=,!=,<,<=,>,>=
Series temporales — PARA Anterior / PARA Siguiente
Cambia una métrica a un período pasado o futuro. El cambio se ajusta al atributo de tiempo en la visualización.
SELECT {metric/revenue} FOR Previous({attribute/year}) SELECT {metric/revenue} FOR Previous({attribute/quarter}, 3) SELECT {metric/revenue} FOR Next({attribute/month}) SELECT {metric/revenue} FOR Each({attribute/customer}) Funciones complementarias: FOR PreviousPeriod , FOR NextPeriod , FOR Each .
Macros de tiempo (ancladas a la fecha actual del mundo real)
SELECT {metric/revenue} WHERE {attribute/date} = THIS(DAY) SELECT {metric/revenue} WHERE {attribute/month} = PREVIOUS(MONTH) SELECT {metric/revenue} WHERE {attribute/month} = THIS(MONTH, -2) SELECT {metric/revenue} WHERE {attribute/year} = NEXT(YEAR) Granularidades: DAY, WEEK, MONTH, QUARTER, YEAR, WEEKOFYEAR, MONTHOFYEAR, QUARTEROFYEAR, DAYOFMONTH, DAYOFWEEK, DAYOFYEAR .
Atajos:
PREVIOUS(g)≡THIS(g, -1)NEXT(g)≡THIS(g, 1)
totales acumulados
Función | Lo que hace |
| Suma acumulada |
| Promedio acumulado |
| Mínimo/máximo acumulado |
| Varianza acumulada |
| Desviación estándar acumulada |
Utilice WITHIN (<attribute>) para restablecer el valor acumulativo en cada nuevo valor de un atributo:
SELECT RUNSUM(SUM({fact/revenue})) WITHIN ({attribute/quarter})Categoría
Función | Lo que hace |
| Clasificación dentro del contexto actual (1 = más alto) |
| Se utiliza dentro de DÓNDE para mantener las filas N superior/inferior |
Cláusulas BY : anulación del contexto
Forma | Lo que hace |
| Calcular agrupado solo por el atributo nombrado. |
| Calcular ignorando el atributo nombrado |
| Calcular ignorando todos los atributos en la visualización |
| Calcular agrupado solo por |
# Share of total: SELECT SUM({fact/revenue}) / (SELECT SUM({fact/revenue}) BY ALL OTHER) # Customer-level total even when sliced by year: SELECT SUM({fact/revenue}) BY {attribute/customer} ALL OTHERFunciones estadísticas
Función | Lo que hace |
| Desviación estándar |
| Diferencia |
| percentil p |
| Coeficiente de correlación |
| Media móvil de los últimos |
Manejo de valores nulos
Las operaciones aritméticas con un valor NULL dan como resultado NULL. Utilice IF / CASE para sustituirlo por cero:
SELECT IF SUM({fact/x}) IS NULL THEN 0 ELSE SUM({fact/x}) END Por seguridad de la división:
SELECT IF SUM({fact/denominator}) = 0 OR SUM({fact/denominator}) IS NULL THEN 0 ELSE SUM({fact/numerator}) / SUM({fact/denominator}) ENDformato de números
El formato numérico reside en la métrica, no en MAQL. Abra el menú desplegable Formato en el editor de métricas.
Marcadores de posición de cadena de formato
0— dígito requerido (rellenar con ceros).#— dígito opcional (sin relleno)..— punto decimal.,— separador de miles.%— multiplica el valor por 100 y añade%.\escapar un símbolo literal.
sufijos de truncamiento
#,K— miles, sufijo "K"#,,M— millones, sufijo "M"#,,,B— miles de millones, sufijo "B"
Colores y formato condicional
[Blue]#,#.## [color=99AE00]#,#.## [backgroundcolor=00FF00]#,#.##
Reglas condicionales:
[<400000][red]$#,#.##; [<500000][magenta]$#,#.##; [<600000][yellow]$#,#.##; [>=600000][green]$#,#.##
Las reglas se aplican de izquierda a derecha; gana el primer partido.
Redondeo automático por magnitud
[>=1000000000]#,,,.0 B; [>=1000000]#,,.0 M; [>=1000]#,.0 K; #,##0
Véase también
Crea visualizaciones arrastrando y soltando elementos : la guía introductoria.
Referencia sobre tipos y configuración de gráficos (próximamente) : opciones de formato a nivel de gráfico (ejes, etiquetas).


