Partamos de una base simple: Si aplicas el AVG sobre una tabla de productos, donde cada uno es único en la tabla, obviamente te devolverá sencillamente el precio de ese producto.
Es decir:
Si cada ProductName es único, no habrá ningún promedio, sería igual a price/1.
Sólo tiene sentido usar una función de agregación si se agrupa en conjuntos de 1...N elementos, donde se pueda hacer una división del tipo X/N. De lo contrario devolverá los valores únicos.
Así como está planteada, sólo podría devolverte el promedio total de todos los precios, mas el precio de cada producto si usas WITH ROLLUP: