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 וכן הלאה.