Подтвердить что ты не робот

Попытка получить среднее значение набора результатов count

У меня есть следующий SQL: (bitemp)

SELECT COUNT (*) AS Count
  FROM Table T
 WHERE (T.Update_time =
           (SELECT MAX (B.Update_time )
              FROM Table B
             WHERE (B.Id = T.Id))
GROUP BY T.Grouping

теперь я получаю набор результатов с большим количеством чисел. Я хочу получить среднее значение этого списка. На данный момент я импортирую список в excel и использую его среднюю функцию. Но для DB2 есть функция AVG, но я не получил ее для работы.

Я попробовал SELECT AVG(COUNT(*)), а также SELECT AVG(*) FROM (theQuery).

4b9b3361

Ответ 1

Вы можете поместить свой запрос в подзапрос:

SELECT avg(count)
  FROM 
    (
    SELECT COUNT (*) AS Count
      FROM Table T
     WHERE T.Update_time =
               (SELECT MAX (B.Update_time )
                  FROM Table B
                 WHERE (B.Id = T.Id))
    GROUP BY T.Grouping
    ) as counts

Изменить: я думаю, что это должно быть одинаково:

SELECT count(*) / count(distinct T.Grouping)
  FROM Table T
 WHERE T.Update_time =
           (SELECT MAX (B.Update_time)
              FROM Table B
             WHERE (B.Id = T.Id))