Mengapa kolom saya dengan pembagian ditampilkan sebagai 0?

Dalam dialek tertentu, termasuk Postgres dan Redshift, melakukan penghitungan di antara bilangan bulat (seperti jumlah pembagian) akan mengembalikan bilangan bulat meskipun hasilnya adalah desimal dalam matematika normal. Misalnya, Anda dapat melakukan 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 pengukuran di Explore, kolom Sold Ratio menampilkan nol, dan tidak ada tempat desimal di kolom Sold Percent. Jawaban ini salah:

Persentase Item Inventaris yang Terjual Rasio Item Inventaris Terjual Jumlah Item Inventaris Jumlah Item Inventaris yang Terjual
48.00 0 1,165,224 560,223

Solusi: Transmisikan kolom Anda sebagai angka floating point

Jika penghitungan dikalikan dengan 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 mengembalikan 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 Jelajahi yang dihasilkan kini menampilkan hasil yang diharapkan:

Persentase Item Inventaris yang Terjual Rasio Item Inventaris Terjual Jumlah Item Inventaris Jumlah Item Inventaris yang Terjual
48.08 0.48 1,165,224 560,223