sql_distinct_key

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.