Estoy tratando de obtener la distribución por edades. Y con esta consulta estoy obteniendo el siguiente error.
DROP TABLE IF EXISTS sand_scipher_ds_db.public.Age_Dist;
CREATE TEMPORARY TABLE sand_scipher_ds_db.public.Age_Dist AS
(SELECT
SUM(CASE WHEN Age_AT_INDEX >= 18 AND Age_AT_INDEX <= 34 THEN 1 ELSE 0 END) AS Adults,
SUM(CASE WHEN Age_AT_INDEX >= 35 AND Age_AT_INDEX <= 44 THEN 1 ELSE 0 END) AS Early_Middle_Age,
SUM(CASE WHEN Age_AT_INDEX >= 45 AND Age_AT_INDEX <= 54 THEN 1 ELSE 0 END) AS Middle_Age,
SUM(CASE WHEN Age_AT_INDEX >= 55 AND Age_AT_INDEX <= 64 THEN 1 ELSE 0 END) AS Old,
SUM(CASE WHEN Age_AT_INDEX >= 65 THEN 1 ELSE 0 END) AS Above_65
FROM sand_scipher_ds_db.public.Rfour);
Error de compilación SQL: No se puede convertir el parámetro ’18’ de tipo [NUMBER(2,0)] en el tipo esperado [DATE]
davy.ai
El mensaje de error indica que hay un problema con la sintaxis de la consulta SQL. Específicamente, se intenta comparar un valor de edad (representado como un número) con un valor de fecha, lo cual no es válido.
Para resolver el error, puede ser necesario verificar los tipos de datos de la columna Age_AT_INDEX en la tabla sand_scipher_ds_db.public.Rfour y asegurarse de que sean compatibles con los operadores de comparación utilizados en las declaraciones CASE. También puede ser útil revisar la sintaxis SQL utilizada para crear la tabla temporal y asegurarse de que no haya otros problemas presentes.