Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
En ciertos dialectos, como Postgres y Redshift, realizar un cálculo entre números enteros (como dividir recuentos) mostrará un número entero, incluso si el resultado sería un decimal en matemáticas normales. Por ejemplo, puedes tomar medidas como las siguientes:
measure: sold_ratio {
type: number
sql: ${sold_count} / ${total_count} ;;
value_format: "0.00" # Number with exactly 2 decimals (1.23)
}
measure: sold_percent {
type: number
sql: 100 * ${sold_count} / ${count} ;;
value_format: "0.00"
}
Sin embargo, cuando ejecutas las medidas en una exploración, la columna Porcentaje vendido muestra cero, y la columna Porcentaje vendido no tiene sus decimales propagados. Esto no es correcto:
Porcentaje de artículos del inventario vendidos
Porcentaje de artículos del inventario vendidos
Recuento de artículos del inventario
Cantidad de artículos del inventario vendidos
48.00
0
1,165,224
560,223
La solución: Convierte tu campo en un número de punto flotante
Si el cálculo se multiplica por un número que no es un número entero, los valores se convertirán en números de punto flotante y se mostrarán los decimales como se espera. Puedes multiplicar el numerador por un número decimal (como 1.0 o 100.0) para forzar a SQL a mostrar un resultado decimal:
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Información o código de muestra incorrectos","incorrectInformationOrSampleCode","thumb-down"],["Faltan la información o los ejemplos que necesito","missingTheInformationSamplesINeed","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-07-31 (UTC)"],[],[],null,["# Why are my fields with division showing up as 0?\n\nIn certain dialects, including Postgres and Redshift, performing a calculation between integers (like dividing counts) will return an integer even if the result would be a decimal in normal math. For example, you might make measures like the following: \n\n```\nmeasure: sold_ratio {\n type: number\n sql: ${sold_count} / ${total_count} ;;\n value_format: \"0.00\" # Number with exactly 2 decimals (1.23)\n}\nmeasure: sold_percent {\n type: number\n sql: 100 * ${sold_count} / ${count} ;;\n value_format: \"0.00\"\n}\n```\n\n\nHowever, when you run the measures in an Explore, the **Sold Ratio** column returns zero, and the **Sold Percent** column does not have its decimal places populated. This is not correct:\n\n\u003cbr /\u003e\n\n\nThe solution: Cast your field as a floating-point number\n--------------------------------------------------------\n\n\nIf the calculation is multiplied by a non-integer, the values will cast as floats, and decimals will be returned as expected. You can multiply the numerator by a decimal number (like 1.0 or 100.0) to force SQL to return a decimal result: \n\n```\nmeasure: sold_ratio {\n type: number\n sql: 1.0 * ${sold_count} / ${total_count};;\n value_format: \"0.00\"\n}\nmeasure: sold_percent {\n type: Number\n sql: 100.0 * ${sold_count} / ${count};;\n value_format: \"0.00\"\n}\n```\n\n\nThe resulting Explore **Data** table now displays the expected results:\n\n\n\u003cbr /\u003e"]]