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, potresti adottare misure simili alle 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 posizioni decimali. Risposta errata:
Percentuale di articoli di inventario venduti | Rapporto articoli inventariati venduti | Conteggio articoli inventario | Numero di elementi venduti dell'inventario |
---|---|---|---|
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 numero non intero, i valori verranno trasmessi 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 Dati di esplorazione risultante ora mostra i risultati previsti:
Percentuale di articoli di inventario venduti | Rapporto articoli inventariati venduti | Conteggio articoli inventario | Numero di elementi venduti dell'inventario |
---|---|---|---|
48,08 | 0,48 | 1.165.224 | 560.223 |