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 |