# Assessments

<figure><img src="/files/JSDTaotn3xx1kodSYawI" alt=""><figcaption></figcaption></figure>

To replicate the Assessments Activity table, you can use the following query:

```sql
WITH assessment_completions AS (
    SELECT 
      content_id, 
      user_id, 
      assessment_score, 
      occurred_at
    FROM data_connector_1234.fact_learn_events
    WHERE event_name = 'assessment_completed'
),

assessment_completions_best_score AS (
    SELECT 
        user_id,
        content_id,
        max(assessment_score) AS assessment_score
    FROM assessment_completions
    GROUP BY user_id, content_id
),

assessment_completions_first_score AS (
    SELECT
        user_id,
        content_id,
        first_value(assessment_score) 
            OVER(PARTITION BY user_id, content_id 
                ORDER BY occurred_at ASC) AS assessment_first_score
    FROM assessment_completions
),

score_increases AS (
    SELECT
        best_score.content_id,
        coalesce(count(DISTINCT best_score.user_id), 0) AS nb_unique_improved_members
    FROM assessment_completions_best_score AS best_score
    INNER JOIN assessment_completions_first_score AS first_score 
        ON best_score.user_id = first_score.user_id
            AND best_score.content_id = first_score.content_id
    WHERE best_score.assessment_score > first_score.assessment_first_score
    GROUP BY best_score.content_id
),

median_scores AS (
    SELECT 
        content_id,
        approx_percentile(assessment_score, 0.6) AS median_score
    FROM assessment_completions
    GROUP BY content_id
),

metrics_without_medians AS (
    SELECT 
        completions.content_id,
        count(*) AS nb_assessments_completed,
        count(DISTINCT completions.user_id) AS nb_unique_member_completions,
        approx_percentile(completions.assessment_score, 0.5) AS median_score,
        approx_percentile(best_score.assessment_score, 0.5) AS median_best_score
    FROM assessment_completions AS completions
    INNER JOIN assessment_completions_best_score AS best_score 
        ON completions.user_id = best_score.user_id 
            AND completions.content_id = best_score.content_id
    GROUP BY completions.content_id
)

SELECT 
    coalesce(content.content_title, 'Deprecated Assessment') AS assessment,
    coalesce(mwm.nb_assessments_completed, 0) AS completions,
    coalesce(mwm.nb_unique_member_completions, 0) AS members,
    coalesce(sci.nb_unique_improved_members, 0) AS improved_members,
    coalesce(mwm.median_score, 0) AS median_score
FROM metrics_without_medians AS mwm 
LEFT JOIN score_increases AS sci 
    ON mwm.content_id = sci.content_id
LEFT JOIN median_scores AS ms
    ON ms.content_id = mwm.content_id
LEFT JOIN data_connector_1234.dim_content AS content
    ON content.content_id = mwm.content_id 
        AND content.assessment_active = true
ORDER BY completions DESC 
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://enterprise-docs.datacamp.com/integrating-our-data-into-your-tools-via-data-connector-2.0/queries-to-recreate-key-reports-in-the-groups-tab/reporting-section/assessments.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
