SQL Problemas de compatibilidad
El conector de BI devuelve un conjunto vacío donde MySQL devuelve NULL Values
Algunas funciones agregadas de SQL (como SUM, MIN, o COUNT) devuelve NULL si no hay valores coincidentes para esa función de agregación. Esta respuesta es efectivamente una fila vacía.
Dada exactamente la misma SQL query, el BI Connector no devuelve NULL para ninguna función de agregación; en su lugar, devuelve un conjunto vacío.
Ejemplo
Estás analizando el rendimiento académico de los estudiantes en cada una de las clases ofrecidas el año pasado por una universidad. Utilizando Tableau, ejecutas una SQL query para encontrar estadísticas para cada clase, incluyendo las notas más altas y más bajas del examen, así como la suma y el recuento de todas las notas de la clase.
SELECT SUM(scores), COUNT(*), COUNT(scores), MAX(scores), MIN(scores) FROM students_2019 GROUP BY class;
Lamentablemente, ejecutas accidentalmente la **query** sobre los datos de las clases del **siguiente** año, por lo que no hay puntajes de pruebas que la **query** pueda encontrar.
Si los datos del estudiante estuvieran almacenados en MySQL, esta query devolvería una sola fila con NULL valores para los campos que se calculan con las funciones SUM, MAX y MIN, y 0 para los campos que se calculan con la función COUNT.
SELECT SUM(scores), COUNT(*), COUNT(scores), MAX(scores), MIN(scores) FROM students_2019 GROUP BY class; +-------------+----------+---------------+-------------+-------------+ | sum(scores) | count(*) | count(scores) | max(scores) | min(scores) | +-------------+----------+---------------+-------------+-------------+ | NULL | 0 | 0 | NULL | NULL | +-------------+----------+---------------+-------------+-------------+
Si los datos del estudiante se almacenan en MongoDB y se acceden a través de BI Connector, esta query devolverá un conjunto vacío.
SELECT SUM(scores), COUNT(*), COUNT(scores), MAX(scores), MIN(scores) FROM students_2019 GROUP BY class; Empty set (0.00 sec)
El BI Connector devuelve NULL valores debido a un error de mapeo
Puede ocurrir un error de mapeo conocido que hace que BI Connector devuelva todos los valores de NULL. Este error puede ocurrir cuando se hace query a una colección que contiene un campo de array que puede ser NULL, y el mismo array contiene un campo adicional que también puede ser NULL. Una solución temporal para este error es crear una vista con el filtro $match que solo devuelva documentos en los cuales el campo $type esté array mediante el método createView.
Ejemplo
Para una colección llamada nextDeparture con un campo de arreglo llamado response.schedule que a veces es NULL, puede crear la siguiente vista:
db.createView("nextDeparture_view", "nextDeparture", [ { "$project": { "response": { "$cond": { "if": { "$eq": ["$response.schedule", null] }, "then": { }, "else": "$response" } }, "name": 1 } } ])