Prueba:
select x.*,
avg(dailyusage) over(partition by productid order by productid, date rows between 6 preceding and current row) as rolling_avg
from (select productid, date, sum(usagecount) as dailyusage
from tbl
group by productid, date) x
Violín:
http://sqlfiddle.com/#!6/f674a7/4/0
Reemplace "avg(dailusage) over...." con sum (en lugar de avg) si lo que realmente quiere es la suma de la semana pasada. En su título dice que quiere el promedio, pero luego dice que quiere la suma. Aparte de eso, la consulta debería ser la misma, así que usa la que realmente quieras.
Como señaló Gordon, esto es básicamente el promedio de las últimas 6 fechas en las que se usó el producto, lo que podría ser más que solo los últimos 6 días si hay días sin filas para ese producto en la tabla porque no fue No se usa en absoluto. Para evitar eso, podría usar una tabla de fechas y su tabla de productos.