Penggunaan
view: view_name {
measure: field_name {
type: sum_distinct
sql_distinct_key: ${my_field_name} ;;
}
}
|
Hierarki
sql_distinct_key |
Jenis Kolom yang Mungkin
Ukur
Menerima
Ekspresi SQL
|
Definisi
Parameter sql_distinct_key digunakan dengan jenis pengukuran yang melakukan agregasi pada nilai yang tidak berulang, khususnya pengukuran jenis average_distinct, median_distinct, percentile_distinct, dan sum_distinct. sql_distinct_key memberi tahu Looker kolom mana yang akan digunakan sebagai dasar untuk menentukan nilai unik, sehingga menghindari kesalahan perhitungan dalam kasus fanout.
Misalnya, type: sum_distinct menjumlahkan nilai yang tidak berulang dalam kolom tertentu, berdasarkan nilai unik yang ditentukan oleh parameter sql_distinct_key.
Pertimbangkan tabel seperti ini:
| ID Item Pesanan | ID Pesanan | Pengiriman Pesanan |
|---|---|---|
| 1 | 1 | 10,00 |
| 2 | 1 | 10,00 |
| 3 | 2 | 20.00 |
| 4 | 2 | 20.00 |
| 5 | 2 | 20.00 |
Dalam situasi ini, ada beberapa baris untuk setiap pesanan. Jika Anda menambahkan ukuran dasar type: sum untuk kolom order_shipping, Anda akan mendapatkan total 80.00, meskipun total pengiriman yang dikumpulkan sebenarnya adalah 30.00.
# Will NOT calculate the correct shipping amount
measure: total_shipping {
type: sum
sql: ${order_shipping} ;;
}
Untuk mendapatkan hasil yang akurat, Anda dapat menjelaskan kepada Looker cara mengidentifikasi setiap entity unik (dalam hal ini, setiap pesanan unik) menggunakan parameter sql_distinct_key. Ini akan menghitung jumlah 30.00 yang benar:
# Will calculate the correct shipping amount
measure: total_shipping {
type: sum_distinct
sql_distinct_key: ${order_id} ;;
sql: ${order_shipping} ;;
}
Setiap nilai unik sql_distinct_key hanya boleh memiliki satu nilai yang sesuai di sql. Contoh ini berfungsi karena setiap baris dengan order_id 1 memiliki order_shipping yang sama, yaitu 10.00, setiap baris dengan order_id 2 memiliki order_shipping yang sama, yaitu 20.00, dan seterusnya.