sql_distinct_key

Usage

view: view_name {
  measure: field_name {
    type: sum_distinct
    sql_distinct_key: ${my_field_name} ;;
  }
}
היררכיה
sql_distinct_key
סוגי שדות אפשריים
מדידה

אישור
ביטוי SQL

הגדרה

הפרמטר sql_distinct_key משמש עם סוגי מדדים שמבצעים צבירה של ערכים לא חוזרים, במיוחד מדדים מסוג average_distinct,‏ median_distinct,‏ percentile_distinct ו-sum_distinct. הפונקציה sql_distinct_key מציינת ל-Looker באיזה שדה להשתמש כבסיס לקביעת ערכים ייחודיים, וכך מונעת טעויות בחישוב במקרה של פיצול.

לדוגמה, הפונקציה type: sum_distinct מסכמת את הערכים הלא חוזרים בשדה נתון, על סמך הערכים הייחודיים שמוגדרים על ידי הפרמטר sql_distinct_key.

לדוגמה, נניח שיש לכם טבלה כזו:

מזהה הפריט בהזמנה מזהה ההזמנה משלוח הזמנה
1 1 10.00
2 1 10.00
3 2 20.00
4 2 20.00
5 2 20.00

במצב הזה, יש כמה שורות לכל הזמנה. אם הוספתם מדד בסיסי של type: sum לעמודה order_shipping, תקבלו סכום כולל של 80.00, למרות שסכום המשלוח הכולל שנגבה הוא 30.00.

 # Will NOT calculate the correct shipping amount
measure: total_shipping {
  type: sum
  sql: ${order_shipping} ;;
}

כדי לקבל תוצאה מדויקת, אפשר להסביר ל-Looker איך לזהות כל ישות ייחודית (במקרה הזה, כל הזמנה ייחודית) באמצעות הפרמטר sql_distinct_key. החישוב יהיה נכון ויניב את הסכום 30.00:

 # Will calculate the correct shipping amount
measure: total_shipping {
  type: sum_distinct
  sql_distinct_key: ${order_id} ;;
  sql: ${order_shipping} ;;
}

לכל ערך ייחודי של sql_distinct_key צריך להיות רק ערך תואם אחד ב-sql. הדוגמה הזו פועלת כי בכל שורה עם ערך order_id של 1 יש ערך order_shipping של 10.00, בכל שורה עם ערך order_id של 2 יש ערך order_shipping של 20.00 וכן הלאה.