Bird
Raised Fist0
Elasticsearchquery~10 mins

Stats and extended stats in Elasticsearch - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to calculate basic statistics on the field 'price'.

Elasticsearch
{
  "aggs": {
    "price_stats": {
      "stats": {
        "field": "[1]"
      }
    }
  }
}
Drag options to blanks, or click blank then click option'
Auser
Bquantity
Cdate
Dprice
Attempts:
3 left
💡 Hint
Common Mistakes
Using a non-numeric field like 'date' or 'user' causes errors.
Leaving the field name blank results in no aggregation.
2fill in blank
medium

Complete the code to calculate extended statistics on the field 'score'.

Elasticsearch
{
  "aggs": {
    "score_extended_stats": {
      "extended_stats": {
        "field": "[1]"
      }
    }
  }
}
Drag options to blanks, or click blank then click option'
Aage
Bscore
Cname
Dtimestamp
Attempts:
3 left
💡 Hint
Common Mistakes
Selecting a non-numeric field causes aggregation failure.
Using a field unrelated to the data context leads to meaningless results.
3fill in blank
hard

Fix the error in the aggregation by completing the missing field name.

Elasticsearch
{
  "aggs": {
    "sales_stats": {
      "stats": {
        "field": "[1]"
      }
    }
  }
}
Drag options to blanks, or click blank then click option'
Asales_amount
Bsales_date
Ccustomer_name
Dregion
Attempts:
3 left
💡 Hint
Common Mistakes
Using a date or string field causes aggregation errors.
Leaving the field empty results in no output.
4fill in blank
hard

Fill both blanks to calculate extended stats on 'temperature' and filter values greater than 20.

Elasticsearch
{
  "aggs": {
    "temp_stats": {
      "extended_stats": {
        "field": "[1]"
      }
    },
    "filtered_temps": {
      "filter": {
        "range": {
          "[2]": {
            "gt": 20
          }
        }
      }
    }
  }
}
Drag options to blanks, or click blank then click option'
Atemperature
Bhumidity
Dpressure
Attempts:
3 left
💡 Hint
Common Mistakes
Using different fields for aggregation and filter causes inconsistent results.
Selecting non-numeric fields for stats or range filter causes errors.
5fill in blank
hard

Fill all three blanks to create an extended stats aggregation on 'duration', include a filter for values less than 100, and name the aggregation 'duration_stats'.

Elasticsearch
{
  "aggs": {
    "[1]": {
      "extended_stats": {
        "field": "[2]"
      }
    },
    "filtered_duration": {
      "filter": {
        "range": {
          "[3]": {
            "lt": 100
          }
        }
      }
    }
  }
}
Drag options to blanks, or click blank then click option'
Aduration_stats
Bduration
Dtime
Attempts:
3 left
💡 Hint
Common Mistakes
Mismatching aggregation name and field names causes confusion.
Using different fields for aggregation and filter leads to incorrect results.

Practice

(1/5)
1. What does the stats aggregation in Elasticsearch provide by default?
easy
A. Count, min, max, avg, and sum
B. Variance and standard deviation
C. Sum of squares only
D. Median and mode

Solution

  1. Step 1: Understand the purpose of stats aggregation

    The stats aggregation provides basic statistical data about numeric fields.
  2. Step 2: Identify the default metrics included

    By default, it returns count, min, max, avg, and sum values.
  3. Final Answer:

    Count, min, max, avg, and sum -> Option A
  4. Quick Check:

    Stats aggregation = basic stats [OK]
Hint: Stats aggregation gives basic stats like count and sum [OK]
Common Mistakes:
  • Confusing stats with extended_stats
  • Thinking stats includes variance
  • Assuming median is included
2. Which of the following is the correct syntax to add an extended stats aggregation named my_stats on the field price?
easy
A. { "aggs": { "my_stats": { "extended_stats": { "field": "price" } } } }
B. { "aggs": { "my_stats": { "stats": { "field": "price" } } } }
C. { "aggs": { "my_stats": { "extended_stats": { "field_name": "price" } } } }
D. { "aggregations": { "my_stats": { "stats": { "field": "price" } } } }

Solution

  1. Step 1: Check the aggregation type and field key

    The aggregation type must be extended_stats and the field key must be field.
  2. Step 2: Verify the JSON structure

    The correct syntax uses aggs as the root key for aggregations, not aggregations.
  3. Final Answer:

    { "aggs": { "my_stats": { "extended_stats": { "field": "price" } } } } -> Option A
  4. Quick Check:

    Use extended_stats with field inside aggs [OK]
Hint: Use "aggs" and "extended_stats" with "field" key [OK]
Common Mistakes:
  • Using "field_name" instead of "field"
  • Using "aggregations" instead of "aggs"
  • Confusing stats with extended_stats
3. Given this Elasticsearch aggregation query:
{
  "aggs": {
    "price_stats": {
      "extended_stats": {
        "field": "price"
      }
    }
  }
}

Which of the following metrics will NOT be included in the response?
medium
A. Sum of squares
B. Median
C. Standard deviation
D. Variance

Solution

  1. Step 1: Identify metrics returned by extended_stats

    The extended_stats aggregation returns count, min, max, avg, sum, sum_of_squares, variance, and std_deviation.
  2. Step 2: Check which metric is missing

    Median is not included in either stats or extended_stats aggregations.
  3. Final Answer:

    Median -> Option B
  4. Quick Check:

    Median not in extended_stats [OK]
Hint: Extended stats exclude median, include variance and std deviation [OK]
Common Mistakes:
  • Assuming median is part of extended_stats
  • Confusing sum_of_squares with sum
  • Thinking variance is not included
4. You wrote this aggregation:
{
  "aggs": {
    "my_stats": {
      "extended_stats": {
        "field_name": "age"
      }
    }
  }
}

Why does this query fail?
medium
A. The aggregation name cannot be "my_stats"
B. The root key should be "aggregations" instead of "aggs"
C. extended_stats does not support the field "age"
D. The field key should be "field", not "field_name"

Solution

  1. Step 1: Check the field key in extended_stats

    The correct key to specify the field is field, not field_name.
  2. Step 2: Verify other parts of the query

    The aggregation name "my_stats" is valid, and "aggs" is the correct root key. The field "age" can be used if it exists.
  3. Final Answer:

    The field key should be "field", not "field_name" -> Option D
  4. Quick Check:

    Use "field" key for field name [OK]
Hint: Use "field" key, not "field_name" in aggregations [OK]
Common Mistakes:
  • Using "field_name" instead of "field"
  • Changing aggregation root key incorrectly
  • Assuming field name is invalid without checking
5. You want to find the average price and also understand the price spread using variance and standard deviation in one query. Which aggregation setup is best?
hard
A. Use stats aggregation on price
B. Use percentiles aggregation on price
C. Use extended_stats aggregation on price
D. Use terms aggregation on price

Solution

  1. Step 1: Identify metrics needed

    You want average, variance, and standard deviation, which describe spread and central tendency.
  2. Step 2: Choose aggregation that provides all metrics

    extended_stats provides avg, variance, std_deviation, sum_of_squares, and more in one aggregation.
  3. Step 3: Compare other options

    stats lacks variance and std deviation; terms groups data; percentiles gives percentile info, not variance.
  4. Final Answer:

    Use extended_stats aggregation on price -> Option C
  5. Quick Check:

    Extended stats = avg + variance + std deviation [OK]
Hint: Extended stats give avg and spread metrics together [OK]
Common Mistakes:
  • Using stats and missing variance
  • Confusing terms with stats
  • Choosing percentiles for variance
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard