Escribir consultas SQL
Escriba consultas PostgreSQL optimizadas para las visualizaciones de Dashboard Studio. Aprenda patrones de acceso a los datos, selección de capa y buenas prácticas de rendimiento
Dashboard Studio usa SQL para recuperar datos de los esquemas de IoT Query. Usted escribe SQL en dos contextos: los editores de panel, donde las instrucciones alimentan las visualizaciones, y el Editor de SQL independiente para la exploración de datos. Esta página explica cómo escribir SQL eficaz para ambos contextos, con énfasis en los requisitos de visualización, ya que tienen restricciones estructurales específicas.
Dónde se usa SQL
Dashboard Studio ofrece dos entornos de SQL para distintos propósitos. Entender cuándo usar cada uno le ayuda a trabajar con más eficiencia.
Consultas de visualización alimentan paneles individuales en los reportes. Usted escribe estas instrucciones en la pestaña de Consulta SQL del editor del panel. Consulta SQL pestaña. Cada panel ejecuta una instrucción que debe devolver datos con una estructura específica que coincida con el tipo de visualización. Estas instrucciones se ejecutan cuando los reportes cargan o se actualizan, por lo que el rendimiento importa para la experiencia del usuario. El SQL de visualización no puede modificar datos; todas las instrucciones se ejecutan como operaciones SELECT de solo lectura contra los esquemas de IoT Query.
Reportes Los reportes usan el mismo enfoque de SQL de visualización que los paneles del dashboard. Un reporte ejecuta una consulta que alimenta tres vistas al mismo tiempo: la tabla de datos, el gráfico y el mapa de ubicación. La instrucción debe devolver todas las columnas necesarias en los tres componentes, así que incluya juntas las columnas de coordenadas, tiempo y métricas en un solo SELECT.
Editor de SQL admite la exploración y exportación de datos. Acceda al Editor SQL desde la barra lateral izquierda, en Herramientas. Escriba cualquier instrucción SELECT para examinar la estructura de los datos, validar supuestos o exportar los resultados como CSV. El Editor SQL muestra tablas completas de resultados con ordenamiento de columnas y proporciona métricas de ejecución. Use esto para probar la lógica antes de agregar SQL a los paneles de visualización, o para extracción de datos ad hoc que no necesita visualización.
Cómo escribir SQL para visualizaciones

El SQL de visualización debe devolver cantidades específicas de columnas y tipos de datos. Dashboard Studio no puede renderizar un gráfico de barras a partir de tres columnas ni una tarjeta de estadísticas a partir de datos de texto. Consulte la sección Requisitos del conjunto de datos en la pestaña Consulta SQL para ver exactamente qué espera la visualización que eligió antes de escribir la instrucción. La tabla siguiente contiene los tipos de visualización admitidos:
Dos columnas: categoría, valor
SELECT column1, COUNT(*) FROM schema.table Grupo BY column1
Dos columnas: etiqueta, valor
SELECT category, SUM(value) FROM schema.table GROUP BY category
Las consultas de reportes siguen las mismas reglas estructurales que las consultas de visualización en los paneles del dashboard. Debido a que una sola instrucción impulsa juntos la tabla de datos, el gráfico y el mapa de ubicación, es posible que necesite combinar columnas que en un dashboard se escribirían como consultas separadas de panel. Por ejemplo, una consulta de panel de gráfico de barras que devuelve dos columnas no es suficiente para un reporte que además necesita coordenadas GPS para el mapa de ubicación. Incluya todas las columnas requeridas para cada componente en una sola instrucción. La lógica central de filtrado y JOIN sigue siendo la misma que en las consultas de panel; solo la cláusula SELECT debe ser más amplia.
Cómo escribir SQL para reportes
Un reporte ejecuta una consulta SQL que impulsa tres componentes simultáneamente: la tabla de datos, el gráfico y el mapa de ubicación. A diferencia de los paneles del dashboard, donde cada panel tiene su propia consulta enfocada, una consulta de reporte debe devolver todas las columnas necesarias para cada componente en una sola instrucción SELECT.
Requisitos de columnas por componente
Cada componente del reporte tiene requisitos de columnas específicos. Su consulta debe satisfacer todos los componentes que haya activado.
Tabla de datos
Cualquier columna
Todas las columnas devueltas aparecen como columnas de la tabla
Gráfico
Al menos una columna de tiempo o de categoría, al menos una columna numérica
Las columnas de los ejes se seleccionan en la configuración del gráfico
Mapa de ubicación
Latitud y longitud en grados decimales
Dashboard Studio detecta automáticamente las columnas de coordenadas
Como la tabla de datos acepta cualquier columna, no impone restricciones adicionales. El gráfico y el mapa de ubicación determinan la mayoría de las decisiones estructurales.
Combinar componentes en una sola consulta
Una consulta que devuelve solo las columnas necesarias para un gráfico (dos columnas: categoría y valor) no puede alimentar también un mapa de ubicación. Debe incluir todas las columnas requeridas juntas.
El siguiente ejemplo devuelve columnas para los tres componentes: una columna de tiempo y una columna numérica para el gráfico, columnas de coordenadas para el mapa de ubicación y atributos adicionales que aparecen en la tabla de datos.
En esta consulta, device_time y velocidad sirva para el gráfico, latitud y longitud sirva para el mapa de ubicación, y todas las columnas aparezcan en la tabla de datos.
Adaptar consultas de panel de dashboard para Reportes
Cualquier consulta de panel de un dashboard es un punto de partida válido para un reporte. El ajuste necesario depende de qué componentes quiera activar.
Si la consulta del panel ya es una visualización de tabla que devuelve varias columnas, es posible que ya incluya todo lo necesario. Agregue columnas de coordenadas si se requiere el mapa de ubicación.
Si la consulta del panel es un gráfico de barras o una consulta de tarjeta de estadísticas que devuelve resultados agregados, probablemente carece del detalle a nivel de fila necesario para la tabla de datos y el mapa de ubicación. En ese caso, elimine la agregación y trabaje en su lugar con las tablas subyacentes de la capa de Datos brutos o de la capa de transformación.
Libro de recetas SQL contiene ejemplos de consultas listos para usar para análisis comunes de la flota. Las recetas del libro se pueden adaptar para reportes agregando columnas de coordenadas donde se necesite el mapa de ubicación. La lógica principal de WHERE y JOIN se transfiere directamente; ajuste solo la cláusula SELECT para cubrir todos los componentes requeridos.
Cómo usar variables globales
Las variables globales proporcionan valores reutilizables en múltiples instrucciones SQL. Defina las variables en Ajustes > Configuración > Variables globales, luego haga referencia a ellas usando ${variable_name} la sintaxis.

Defina variables para valores que cambian periódicamente pero permanecen consistentes en varios paneles: rangos de fechas de análisis, filtros por tipo de vehículo o valores umbral. Cuando esos valores cambien, actualice la definición de la variable una sola vez en lugar de editar instrucciones SQL individuales.
Las variables almacenan valores de texto. Conviértalas a los tipos apropiados en SQL: '${variable_name}'::date para fechas, '${variable_name}'::integer para números.
Para parámetros específicos de la instrucción que cambian con frecuencia, puede usar bloques de parámetros CTE al inicio:
Este patrón combina variables globales (rangos de fechas) con parámetros específicos de la sentencia (umbrales), manteniendo todos los valores ajustables en la parte superior para facilitar el Mantenimiento.
Cómo unir etiquetas de Objeto
raw_business_data.objects.device_id No es único. Un dispositivo puede llevar varios registros de Objeto, porque un dispositivo reasignado entre objetos deja atrás las filas anteriores. Tablas de hechos como processed_common_data.viajes encender device_id por sí sola, así que una unión simple a objetos multiplica cada fila de hechos por el número de registros de objeto coincidentes. Luego, los conteos y las sumas resultan demasiado altos, sin ningún error que se lo indique.
Filtrado en is_deleted no es suficiente por sí solo, porque más de un registro puede pasar ese filtro. Primero elija una fila por dispositivo y luego haga la unión con ella:
Usar LEFT JOIN en lugar de una unión interna, para que un dispositivo sin un registro de Objeto que sobreviva siga apareciendo en lugar de quedar excluido del resultado.
processed_common_data.rule_based_Conductor_events es la excepción. Ya contiene object_id y etiqueta de Objeto, y sus coordenadas están en grados, así que no necesita ni esta unión ni la /1e7 conversión.
Cómo acceder a los esquemas de IoT Query
IoT Query organiza los datos en las Capas de Datos brutos, Transformación y análisis. Las Capas de Datos brutos y Transformación contienen dos esquemas de PostgreSQL cada una, y usted referencia una tabla por el nombre de su esquema en lugar de por la capa. Elegir la capa correcta ahorra tiempo y mantiene SQL claro. Para obtener detalles completos de los esquemas, consulte el Visión general del esquema de IoT Query.
Capa de Datos brutos contiene lo que los dispositivos y la plataforma Navixy registraron, en dos esquemas. raw_telematics_data contiene datos de Seguimiento, entrada y estado: raw_telematics_data.Seguimiento_data_core almacena cada posición de GPS con marcas de tiempo, coordenadas y lecturas de sensores. datos_brutos_de_negocio contiene entidades de negocio como raw_business_data.objects, raw_business_data.Gestión de vehículos, y raw_business_data.zones. Utilice la capa de Datos brutos para análisis a nivel de punto, para valores brutos de sensores y para las etiquetas y atributos que vincule a los datos procesados.
Capa de transformación almacena entidades procesadas en dos esquemas. datos_comunes_procesados contiene las transformaciones que Navixy mantiene, que están disponibles sin configuración: Viajes, datos_de_sensores_por_hora, eventos del conductor basados en reglas, y input_change_events. datos_personalizados_procesados contiene las transformaciones que usted crea por su cuenta en Transformation Builder. Utilice la capa de transformación para la mayoría de las necesidades de visualización, porque proporciona estructuras listas para el análisis. Vea Transformaciones comunes para cada una de las columnas de la tabla.
Capa de insights ofrece métricas preagregadas y modelos dimensionales para analíticas complejas. Úselo para estadísticas de toda la flota o análisis multidimensional que de otro modo requerirían uniones complejas con las tablas de la capa de transformación.
Los nombres de las capas Bronze, Silver y Gold describen la arquitectura de medallón que siguen las capas. No son nombres de esquema, y silver.viajes no es una tabla que usted pueda consultar. Use los nombres de esquema anteriores.
Tablas de referencia que usan schema.table formato: processed_common_data.viajes, no solo Viajes. Incluya filtros de rango de fechas en las cláusulas WHERE para limitar los datos escaneados:
La mayoría de las sentencias SQL filtran por dispositivo, rango de tiempo o ambos. Agregue estos filtros al inicio de las cláusulas WHERE para reducir el volumen de datos procesados.
Unidades de medición en los resultados de la consulta
IoT Query almacena cada medición en una unidad fija, y Dashboard Studio muestra lo que devuelva la consulta. No convierte los valores al sistema de medición configurado en las Preferencias de la cuenta Navixy, como sí lo hace la app predefinida de Dashboards. Dos personas con Preferencias diferentes ven los mismos números en el mismo panel.
La unidad de cada columna se documenta en la Visión general del esquema de IoT Query, y muchas columnas lo nombran directamente. distancia del Recorrido en metros contiene metros, avg_speed y max_speed mantenga km/h y altitude_start y altitud_final Mantenga los metros sobre el nivel del mar. Verifique la columna antes de etiquetar un panel.
Convierta en la consulta cuando sus lectores trabajen con otras unidades, y nombre la unidad en el alias de la columna para que el panel se etiquete correctamente:
Divida los metros entre 1,609.344 para obtener millas, km/h entre 1.609344 para obtener mph y los metros entre 0.3048 para obtener pies.
Cómo usar el editor SQL
Acceda al Editor de SQL desde la barra lateral izquierda, en Herramientas. Úselo para tres propósitos principales: probar la lógica antes de agregarla a los paneles, explorar los esquemas de datos para entender las columnas disponibles y exportar datos que no necesitan visualización.

El editor SQL admite varias pestañas para diferentes sentencias. Escriba SQL en las pestañas, ejecútelo con el botón "Execute Query" y vea los resultados en la tabla de abajo. Los resultados muestran métricas de ejecución (tiempo de ejecución, filas devueltas) y admiten la ordenación de columnas para examinar rápidamente los datos.
Exporte los resultados como CSV usando el botón «Export CSV». Esto funciona para reportes ad hoc o para extracciones de datos para análisis externo. El editor de SQL no tiene límite de filas de resultados, a diferencia del SQL de visualización, que debería devolver conjuntos de datos específicos.
Pruebe el SQL de visualización en el SQL Editor antes de agregarlo a los paneles. Escriba la instrucción, verifique que devuelva las columnas y los tipos de datos esperados, luego cópiela a la pestaña SQL Query del editor del panel. Este flujo de trabajo detecta problemas estructurales antes de que configure los ajustes de visualización.
Patrón de exploración para datos nuevos:
Patrones SQL comunes
La mayor parte del SQL de visualización sigue patrones similares. Copie estas estructuras y ajuste los filtros, las columnas y las agregaciones según sus necesidades específicas.
Qué hacer cuando SQL falla
Las fallas de ejecución se dividen en tres categorías: discrepancias estructurales con los requisitos de visualización, errores de sintaxis SQL o filtros que no devuelven datos.
Desajustes en la estructura de las columnas
Ocurren cuando los resultados no coinciden con las expectativas de visualización. Si seleccionó un gráfico de barras pero su SQL devuelve tres columnas, Dashboard Studio no puede renderizarlo. Revise Requisitos del conjunto de datos en la pestaña SQL Query. El gráfico de barras necesita exactamente dos columnas (categoría, valor), así que ajuste su cláusula SELECT:
Errores de sintaxis de SQL
Muestre mensajes de error específicos. Los problemas comunes incluyen prefijos de esquema faltantes (Viajes en lugar de processed_common_data.viajes), errores tipográficos en los nombres de columna o conversión incorrecta de fechas. Pruebe las sentencias en el Editor SQL para ver mensajes de error detallados con números de línea.
Resultados vacíos
A pesar de una ejecución exitosa, indique que los filtros excluyen todos los datos. Pruebe el SQL sin cláusulas WHERE en el editor de SQL para verificar que la tabla contiene datos; luego agregue filtros de manera incremental para identificar qué condición excluye los resultados esperados.
Problemas de rendimiento
Si las sentencias se ejecutan lentamente o agotan el tiempo, agregue filtros de rango de fechas a las cláusulas WHERE. Las operaciones que analizan tablas completas procesan millones de filas innecesariamente:
Para obtener orientación adicional sobre el rendimiento, consulte Cómo acceder a los esquemas de IoT Query para conocer las mejores prácticas sobre el filtrado y la selección de esquemas.
Dónde encontrar ejemplos de SQL
El Libro de recetas SQL proporciona ejemplos completos para análisis telemáticos comunes. Estas recetas demuestran patrones para el análisis de Recorrido, cálculos de visitas a zonas, detección de ralentí y métricas de Flota. Cada receta incluye la instrucción SQL completa, la explicación de la lógica y resultados de ejemplo.
Adapte ejemplos del libro de recetas para visualizaciones ajustando la cláusula SELECT para que coincida con los requisitos de la visualización. Una receta que devuelve registros de recorrido detallados puede convertirse en un gráfico de barras agregando GROUP BY y la agregación COUNT. Una sentencia que calcula métricas por vehículo puede convertirse en un mosaico de estadísticas agregando SUM en todos los vehículos.
Solo necesita:
Copie ejemplos de Libro de recetas al Editor de Dashboard Studio.
Pruebe con sus datos reales.
Verifique los resultados y luego modifique la cláusula SELECT para su visualización de destino.
La lógica principal de WHERE y JOIN permanece igual; usted ajusta solo la estructura de salida.
Para conocer los detalles del esquema, consulte el Visión general del esquema de IoT Query. Esta referencia explica las tablas disponibles, las definiciones de columnas y las relaciones entre las Capas de Datos brutos, Transformación e Insight.
Última actualización
¿Te fue útil?