Perché i campi con divisione vengono visualizzati come 0?

In alcuni dialetti, tra cui Postgres e Redshift, l'esecuzione di un calcolo tra numeri interi (ad esempio la divisione dei conteggi) restituirà un numero intero anche se in una formula matematica normale il risultato sarebbe un decimale. Ad esempio, puoi adottare misure come le seguenti:

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" }

Tuttavia, quando esegui le misure in un'esplorazione, la colonna Rapporto venduto restituisce zero e la colonna Percentuale venduta non presenta cifre decimali. non è la risposta corretta:

Percentuale di elementi venduti nell'inventario Rapporto elementi venduti nell'inventario Conteggio articoli nell'inventario Numero di elementi dell'inventario venduti
48.00 0 1,165,224 560,223

Soluzione: trasmetti il campo come numero in virgola mobile

Se il calcolo viene moltiplicato per un numero non intero, i valori verranno espressi come numeri in virgola mobile e i decimali verranno restituiti come previsto. Puoi moltiplicare il numeratore per un numero decimale (come 1,0 o 100,0) per forzare SQL a restituire un risultato decimale:

measure: sold_ratio {
    type: number
    sql: 1.0 * ${sold_count} / ${total_count};;
    value_format: "0.00"
}

measure: sold_percent { type: Number sql: 100.0 * ${sold_count} / ${count};; value_format: "0.00" }

La tabella Esplora dati risultante ora mostra i risultati previsti:

Percentuale di elementi venduti nell'inventario Rapporto elementi venduti nell'inventario Conteggio articoli nell'inventario Numero di elementi dell'inventario venduti
48.08 0.48 1,165,224 560,223