Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Em alguns dialetos, incluindo Postgres e Redshift, a realização de um cálculo entre números inteiros (como a divisão de contagens) retorna um número inteiro, mesmo que o resultado seja um decimal na matemática normal. Por exemplo, você pode fazer medidas como estas:
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"
}
No entanto, quando você executa as medidas em uma análise detalhada, a coluna Proporção vendida retorna zero, e a coluna Porcentagem vendida não tem casas decimais preenchidas. Isso não está correto:
Percentual de itens de inventário vendidos
Razão de itens de inventário vendidos
Contagem de itens de inventário
Contagem de itens de inventário vendidos
48,00
0
1.165.224
560.223
A solução: converta o campo em um número de ponto flutuante
Se o cálculo for multiplicado por um valor não inteiro, os valores serão convertidos em números flutuantes, e os valores decimais serão retornados conforme o esperado. Você pode multiplicar o numerador por um número decimal (como 1,0 ou 100,0) para forçar o SQL a retornar um resultado decimal:
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 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"]]