выполнение математических операций над запросом

#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