Я хочу найти среднюю продолжительность по числу уникальных пользователей по дате.
Таблица данных
| date | user_id | duration |
|------------|---------|----------|
| 2018-10-02 | 1 | 5 |
| 2018-10-02 | 1 | 10 |
| 2018-10-02 | 2 | 15 |
| 2018-10-03 | 1 | 20 |
| 2018-10-03 | 2 | 30 |
| 2018-10-04 | 2 | 5 |
Ожидаемый доход
| date | ave_duration_per_unique_user |
|------------|------------------------------|
| 2018-10-02 | 15 |
| 2018-10-03 | 25 |
| 2018-10-04 | 5 |
В приведенном ниже запросе приводится среднее значение, основанное на общей продолжительности даты / общем количестве записей для даты.общее количество записей для даты должно быть числом уникальных идентификаторов пользователя для даты.
SELECT
DISTINCT date,
AVG(session_duration)
FROM
my_table
GROUP BY
date, distinct_id
ORDER BY
date
| date | ave_duration_per_unique_user |
|------------|------------------------------|
| 2018-10-02 | 10 | // should be 15
| 2018-10-03 | 25 |
| 2018-10-04 | 5 |