Как мне получить среднесуточное значение за один месяц?

Как мне вернуть среднесуточное значение за целый месяц?

select count(distinct people_id) 
from #enrollments_PreviousMonth
where program_modifier_id = 'E1AA7A36-0500-4BAE-A0AA-D9E0BC91A6F3' 
AND actual_date between '4/1/13' and '5/1/13'

Выше часть моего текущего кода. Я хочу получить точное количество people_id для каждого дня в апреле. Затем я хочу усреднить эти подсчеты за апрель. Например, если счет был 764 1 апреля и 763 2 апреля, то я бы суммировал 764 и 763 = 1527. Точно так же я бы суммировал каждый день в апреле. Наконец, я разделил бы на количество дней в апреле, чтобы получить среднесуточное значение. Какой самый эффективный TSQL для этого? Есть ли CTE, который я мог бы использовать для этого или другого стандартного оператора SQL?


person salvationishere    schedule 10.05.2013    source источник


Ответы (2)


Возможно, вы захотите использовать что-то вроде этого

SELECT round(Cast(count(people_id)as float) / Cast(DateDiff(day, '4/1/13', '4/6/13')as float), 2) as average
    FROM #enrollments_PreviousMonth
    WHERE program_modifier_id = 'E1AA7A36-0500-4BAE-A0AA-D9E0BC91A6F3' 
        AND actual_date between '4/1/13' and '5/1/13'
    GROUP BY people_id
person Mike Hewitt    schedule 10.05.2013

person    schedule
comment
Убедитесь, что вы привели cnt к float, когда усреднение или среднее значение вернет int, а не float. - person Steven Wexler; 10.05.2013