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 il risultato sarebbe un numero decimale nella matematica normale. Ad esempio, puoi creare 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 di vendita restituisce zero e la colonna Percentuale di vendita non ha decimali. Non è corretto:
Percentuale di articoli di inventario venduti | Rapporto articoli inventariati venduti | Conteggio articoli inventario | Conteggio articoli inventariati venduti |
---|---|---|---|
48,00 | 0 | 1.165.224 | 560.223 |
La soluzione: trasmetti il campo come numero in virgola mobile
Se il calcolo viene moltiplicato per un valore non intero, i valori verranno convertiti in valori float e i decimali verranno restituiti come previsto. Puoi moltiplicare il numeratore per un numero decimale (ad esempio 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 Dati dell'esplorazione risultante ora mostra i risultati previsti:
Percentuale di articoli di inventario venduti | Rapporto articoli inventariati venduti | Conteggio articoli inventario | Conteggio articoli inventariati venduti |
---|---|---|---|
48,08 | 0,48 | 1.165.224 | 560.223 |