#mysql #sql
Вопрос:
Я использую запрос, чтобы вернуть общее количество записей x количество дней, которые были зарегистрированы… Я бы тоже хотел иметь среднее значение, как я могу получить этот результат?
SELECT COUNT(DISTINCT CAST(DataCriacao AS DATE)) AS dias, userid, COUNT(*), SUM(count(*) / dias) FROM ticket WHERE MONTH(DataCriacao) = month(CURDATE()) AND YEAR(DataCriacao) = YEAR(CURDATE()) AND motivoRegistro LIKE '%Ap%' GROUP BY userid ORDER BY COUNT(*) DESC
ожидаемый
-------- ------ ---------- -----
| userid | dias | count(*) | avg |
-------- ------ ---------- -----
| root | 10 | 50 | 5 |
-------- ------ ---------- -----
Ответ №1:
Вы просто хотите разделения?
SELECT COUNT(DISTINCT CAST(DataCriacao AS DATE)) AS dias, userid, COUNT(*),
count(*) / COUNT(DISTINCT CAST(DataCriacao AS DATE))
FROM ticket
WHERE MONTH(DataCriacao) = month(CURDATE()) AND
YEAR(DataCriacao) = YEAR(CURDATE()) AND
motivoRegistro LIKE '%Ap%'
GROUP BY userid
ORDER BY COUNT(*) DESC