IntervalMatch
El prefijo IntervalMatch se utiliza para crear una tabla que coincida con valores numéricos discretos con uno o más intervalos numéricos y, opcionalmente, que coincida con los valores de una o varias claves adicionales.
Sintaxis:
IntervalMatch (matchfield)(loadstatement | selectstatement )
IntervalMatch (matchfield,keyfield1 [ , keyfield2, ... keyfield5 ] ) (loadstatement | selectstatement )
El prefijo IntervalMatch debe colocarse antes de una sentencia LOAD o SELECT que carga los intervalos. El campo que contiene los puntos de datos discretos (Time en el ejemplo inferior) y las claves adicionales ya deben haberse cargado en Qlik Sense antes de la sentencia con el prefijo IntervalMatch. El prefijo no lee por sí mismo este campo desde la tabla de la base de datos. El prefijo transforma la tabla cargada de intervalos y claves en una tabla que contiene una columna adicional: los puntos de datos numéricos discretos. También amplía el número de registros de forma que la nueva tabla contiene un registro por combinación posible de puntos de datos discretos, intervalo y valor del campo(s) clave.
Los intervalos pueden solaparse y los valores discretos se enlazarán con todos los intervalos coincidentes.
Cuando el prefijo IntervalMatch se amplía con los campos clave, se utiliza para crear una tabla que haga coincidir valores numéricos discretos con uno o más intervalos numéricos, mientras que al mismo tiempo coincida con los valores de una o varias teclas adicionales.
Para evitar que se ignoren los límites de intervalos no definidos, puede ser necesario permitir que los valores NULL se asignen a otros campos que constituyen los límites inferior o superior del intervalo. Esto puede gestionarlo la sentencia NullAsValue o una prueba explícita que reemplaza los valores NULL por un valor numérico mucho antes o después de cualquiera de los puntos de datos numéricos discretos.
Argumentos:
Argumento | Descripción |
---|---|
matchfield | Es el campo que contiene los valores numéricos discretos que se van a enlazar con los intervalos. |
keyfield | Son campos que contienen los atributos adicionales que se van a comparar en la transformación. |
loadstatementorselectstatement | Debe dar como resultado una tabla, en la que el primer campo contiene el límite inferior de cada intervalo, el segundo campo contiene el límite superior de cada intervalo y, en el caso de usar la asignación de claves, el tercer campo y cualquier campo subsiguiente contienen los campos clave presentes en la sentencia IntervalMatch. Los intervalos están siempre cerrados, es decir, los puntos finales están incluidos en el intervalo. En caso de tener límites no numéricos, no se considera el intervalo (se descarta como indefinido). |
Ejemplo 1:
En las dos tablas a continuación, la primera enumera una serie de eventos discretos y la segunda define las horas de inicio y finalización de distintos pedidos. Mediante el prefijo IntervalMatch es posible conectar de forma lógica las dos tablas a fin de hallar por ej. qué pedidos se vieron afectados por incidencias y qué pedidos fueron procesados por qué turnos.
La tabla OrderLog contiene ahora una columna adicional: Time. El número de registros también se expande.
Time | Start | End | Order |
---|---|---|---|
00:00 | - | - | - |
01:18 | 01:00 | 03:35 | A |
02:23 | 01:00 | 03:35 | A |
04:15 | 02:30 | 07:58 | B |
04:15 | 03:04 | 10:27 | C |
08:00 | 03:04 | 10:27 | C |
08:00 | 07:23 | 11:43 | D |
11:43 | 07:23 | 11:43 | D |
Ejemplo 2: (usando keyfield)
Mismo ejemplo que el anterior, añadiendo ProductionLine como un campo clave.
Ahora se podría crear un cuadro de tabla como éste:
ProductionLine | Time | Event | Comment | Order | Start | End |
---|---|---|---|---|---|---|
P1 | 00:00 | 0 | Start of shift 1 | - | - | - |
P2 | 01:00 | 0 | Start of shift 1 | - | - | - |
P1 | 01:18 | 1 | Line stop | A | 01:00 | 03:35 |
P1 | 02:23 | 2 | Line restart 50% | A | 01:00 | 03:35 |
P1 | 04:15 | 3 | Line speed 100% | B | 02:30 | 07:58 |
P1 | 04:15 | 3 | Line speed 100% | C | 03:04 | 10:27 |
P1 | 08:00 | 4 | Start of shift 2 | C | 03:04 | 10:27 |
P2 | 09:00 | 4 | Start of shift 2 | D | 07:23 | 11:43 |
P1 | 11:43 | 5 | End of production | - | - | - |
P2 | 11:43 | 5 | End of production | D | 07:23 | 11:43 |