Warum werden meine Felder mit Division als „0“ angezeigt?
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Bei bestimmten Dialekten, einschließlich Postgres und Redshift, wird bei einer Berechnung zwischen Ganzzahlen (z. B. bei der Division von Zählwerten) eine Ganzzahl zurückgegeben, auch wenn das Ergebnis bei normaler Mathematik ein Dezimalbruch wäre. Sie können beispielsweise folgende Maßnahmen ergreifen:
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"
}
Wenn Sie die Messwerte jedoch in einem explorativen Datenanalysetool ausführen, wird in der Spalte Verkauftes Verhältnis der Wert „0“ zurückgegeben und die Dezimalstellen der Spalte Prozentsatz der verkauften Artikel sind nicht ausgefüllt. Das ist nicht richtig:
Prozentsatz der verkauften Inventarelemente
Verhältnis der verkauften Inventarelemente
Anzahl der Inventarelemente
Anzahl der verkauften Inventarelemente
48,00
0
1.165.224
560.223
Lösung: Feld als Gleitkommazahl umwandeln
Wenn die Berechnung mit einer nicht ganzzahligen Zahl multipliziert wird, werden die Werte als Gleitkommazahlen gewandelt und Dezimalzahlen werden wie erwartet zurückgegeben. Sie können den Nenner mit einer Dezimalzahl multiplizieren (z.B.1,0 oder 100,0), um SQL zu zwingen, ein Dezimalergebnis zurückzugeben:
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Schwer verständlich","hardToUnderstand","thumb-down"],["Informationen oder Beispielcode falsch","incorrectInformationOrSampleCode","thumb-down"],["Benötigte Informationen/Beispiele nicht gefunden","missingTheInformationSamplesINeed","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 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"]]