Dalam dialek tertentu, termasuk Postgres dan Redshift, melakukan penghitungan antara bilangan bulat (seperti membagi jumlah) akan menampilkan bilangan bulat meskipun hasilnya adalah desimal dalam matematika normal. Misalnya, Anda dapat membuat tindakan seperti berikut:
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"
}
Namun, saat Anda menjalankan ukuran di Jelajahi, kolom Rasio Terjual akan menampilkan nol, dan kolom Persentase Terjual tidak akan diisi dengan tempat desimal. Jawaban ini salah:
| Persentase Item Inventaris yang Terjual | Rasio Item Inventaris Terjual | Jumlah Item Inventaris | Jumlah Item Inventaris Terjual |
|---|---|---|---|
| 48,00 | 0 | 1.165.224 | 560.223 |
Solusi: Menampilkan kolom sebagai angka floating point
Jika penghitungan dikalikan dengan non-bilangan bulat, nilai akan ditransmisikan sebagai float, dan desimal akan ditampilkan seperti yang diharapkan. Anda dapat mengalikan pembilang dengan angka desimal (seperti 1,0 atau 100,0) untuk memaksa SQL menampilkan hasil desimal:
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"
}
Tabel Data Jelajah yang dihasilkan kini menampilkan hasil yang diharapkan:
| Persentase Item Inventaris yang Terjual | Rasio Item Inventaris Terjual | Jumlah Item Inventaris | Jumlah Item Inventaris Terjual |
|---|---|---|---|
| 48,08 | 0,48 | 1.165.224 | 560.223 |