Saat menentukan penghitungan yang kompleks di LookML, sebaiknya bagi penghitungan tersebut menjadi beberapa langkah perantara yang melibatkan penghitungan yang lebih sederhana. Dengan membuat ukuran perantara, Anda membuat penghitungan lebih mudah dibaca, lebih mudah dikelola, dan lebih sedikit error, karena Anda hanya perlu memastikan bahwa setiap penghitungan perantara sudah benar di satu tempat.
Halaman ini memberikan contoh cara membuat penghitungan di LookML lebih mudah dibaca dan dikelola dengan menentukan ukuran perantara untuk membagi penghitungan yang kompleks menjadi langkah-langkah yang lebih kecil dan lebih mudah dikelola.
Produk
- Parameter
measure
LookML - Parameter
sql
dari ukuran - Ukuran
type: sum
- Ukuran
type: number
- Parameter
hidden
LookML (untuk kolom)
Prasyarat
Contoh: Memecah penghitungan yang kompleks menjadi ukuran perantara
Misalnya, Anda memiliki perusahaan yang menjual produk secara online, dan ingin menentukan ukuran untuk menghitung total laba dan dividen pemegang saham. Salah satu cara untuk melakukannya adalah dengan menentukan dua ukuran: ukuran total_profit
dan ukuran shareholder_dividends
, sebagai berikut:
measure: total_profit {
type: number
sql: SUM(${orders.sale_price}) - SUM(${employees.salary}) - SUM(${products.cost}) ;;
}
measure: shareholder_dividends
description: "We give shareholders 60% of our total profits."
type: number
sql: 0.6 * (SUM(${orders.sale_price}) - SUM(${employees.salary}) - SUM(${products.cost})) ;;
Dalam contoh ini, penghitungan SUM(${orders.sale_price}) - SUM(${employees.salary}) - SUM(${products.cost})
digunakan kembali dalam parameter sql
untuk kedua ukuran. Jika perlu memperbarui definisi penghitungan ini, seperti untuk memperbaiki error, Anda harus memperbarui penghitungan secara manual untuk kedua ukuran tersebut.
Anda dapat membuat definisi ukuran ini lebih mudah dikelola dengan menggunakan kembali ukuran total_profit
dalam penghitungan di ukuran shareholder_dividends
:
measure: total_profit {
type: number
sql: SUM(${orders.sale_price}) - SUM(${employees.salary}) - SUM(${products.cost}) ;;
}
measure: shareholder_dividends
description: "We give shareholders 60% of our total profits."
type: number
sql: 0.6 * ${total_profit} ;;
Sebaiknya bagi penghitungan di total_profit
menjadi ukuran yang lebih sederhana yang dapat digunakan kembali dalam penghitungan lain. Misalnya, Anda dapat membuat ukuran type: sum
yang disebut total_sales
, total_revenue
, total_cost
, dan total_salary
:
measure: total_sales {
hidden: yes
type: sum
sql: ${orders.sale_price} ;;
}
measure: total_revenue {
hidden: yes
type: number
sql: ${total_sales} ;;
}
measure: total_cost {
hidden: yes
type: sum
sql: ${products.cost} ;;
}
measure: total_salary {
hidden: yes
type: sum
sql: ${employees.salary} ;;
}
Anda kemudian dapat menggunakan kembali kolom perantara yang telah ditentukan sebagai berikut:
measure: total_expenses {
type: number
sql: ${total_cost} + ${total_salary} ;;
}
measure: total_profit {
type: number
sql: ${total_revenue} - ${total_expenses} ;;
}
measure: shareholder_dividends {
description: "We give shareholders 60% of our total profits."
type: number
sql: 0.6 * ${total_profit} ;;
}
Meskipun Anda telah menentukan lebih banyak ukuran, ukuran perantara ini dapat digunakan kembali dalam penghitungan lain, dan akan lebih mudah untuk memperbaiki kesalahan atau membuat perubahan pada penghitungan yang digunakan dalam beberapa ukuran.