Mengapa kolom dengan pembagian ditampilkan sebagai 0?

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