Для исправления вашего SQL-запроса, чтобы избежать ошибки "syntax error at or near 'select'" и корректно посчитать среднее количество записей за день на одного пациента, вам потребуется использовать подзапрос для подсчета среднего количества записей за день.
Вот исправленный вариант вашего запроса:
```sql
SELECT
patient_id,
COUNT(id) AS count_measure,
AVG(daily_count) AS avg_count_measure
FROM (
SELECT
patient_id,
COUNT(1) AS daily_count
FROM
monitoring_pulse mp2
WHERE
patient_id IN (189, 1323, 959)
AND taken_at > '2024-09-01'
GROUP BY
patient_id,
to_char(taken_at, 'YYYY-MM-DD') -- группируем по дате
) AS daily_counts
GROUP BY
patient_id;
```
### Объяснение:
1. **Внутренний запрос (подзапрос)**:
- Мы группируем записи `monitoring_pulse` по `patient_id` и дате (преобразованной в строку формата 'YYYY-MM-DD').
- Считаем количество записей (pulse measurements) на каждого пациента за каждый день. Результат этого подзапроса будет содержать количество измерений за день для каждого пациента.
2. **Внешний запрос**:
- На основе результатов внутреннего запроса мы рассчитываем общее количество записей с помощью `COUNT(id)` и среднее количество записей в день с помощью `AVG(daily_count)`.
Таким образом, вы получите общее количество записей и среднее количество записей за день для каждого из указанных пациентов.