Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Sacar el promedio de cada 6 productos de una tabla

Estas en el tema de Sacar el promedio de cada 6 productos de una tabla en el foro de SQL Server en Foros del Web. Hola, tengo un problema con una consulta que intento hacer, me piden lo siguiente: Sacar el promedio de cada 6 productos de la tabla PC, ...
  #1 (permalink)  
Antiguo 23/07/2012, 17:13
 
Fecha de Ingreso: julio-2012
Mensajes: 3
Antigüedad: 12 años, 3 meses
Puntos: 0
Pregunta Sacar el promedio de cada 6 productos de una tabla

Hola, tengo un problema con una consulta que intento hacer, me piden lo siguiente:
Sacar el promedio de cada 6 productos de la tabla PC, primero ordenar (order by code asc) de manera ascendente y posterior a eso realizas el avg para cada grupo de 6…

mi tabla esta formada asi:

code model price
1 1232 600
2 1121 850
3 1233 600
4 1121 850
5 1121 850
6 1233 950
7 1232 400
8 1232 350
9 1232 350
10 1260 350
11 1233 980
12 1233 970

lo que tengo que haces es del 1 al 6 sacar el promedio de price (783.33)
luego del 2 al 7 (750), del 3 al 8 (666.666) y asi sucesivamente, pero no tengo ni la mas minima idea de como hacerlo, alguien me puede ayudar ¿?

Gracias..!!!
  #2 (permalink)  
Antiguo 23/07/2012, 21:33
 
Fecha de Ingreso: julio-2012
Ubicación: Israel
Mensajes: 360
Antigüedad: 12 años, 4 meses
Puntos: 40
Respuesta: Sacar el promedio de cada 6 productos de una tabla

Intenta la siguiente recuperación con una sub consulta:
Código SQL:
Ver original
  1. SELECT  *,
  2.         (SELECT Avg(price) FROM PC T2 WHERE T1.code-T2.code BETWEEN 0 AND 5) Promedio
  3. FROM    PC T1
  4. ORDER BY code;
Supongo que los numeros en la columna code son secuenciales y sin "agujeros".
__________________
El Castellano no es mi lengua materna: discúlpenme por los errores gramaticales.
Mi blog

Última edición por GeriReshef; 23/07/2012 a las 22:53
  #3 (permalink)  
Antiguo 24/07/2012, 08:41
 
Fecha de Ingreso: julio-2012
Mensajes: 3
Antigüedad: 12 años, 3 meses
Puntos: 0
De acuerdo Respuesta: Sacar el promedio de cada 6 productos de una tabla

Hola GeriReshef,
Gracias por tu respuesta, si me da los resultados que busco, peeero solo me debe de dar 7 registros y me trae 6 de mas :( como puedo hacer para que solo me traiga los promedios de los 6 grupos ¿?
  #4 (permalink)  
Antiguo 24/07/2012, 16:28
 
Fecha de Ingreso: abril-2012
Ubicación: Capital Federal
Mensajes: 283
Antigüedad: 12 años, 7 meses
Puntos: 15
Respuesta: Sacar el promedio de cada 6 productos de una tabla

Proba con top....
  #5 (permalink)  
Antiguo 24/07/2012, 16:41
 
Fecha de Ingreso: julio-2012
Mensajes: 3
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Sacar el promedio de cada 6 productos de una tabla

Hola damimg,

Pero en este caso como podria utilizar top ¿?
  #6 (permalink)  
Antiguo 25/07/2012, 02:51
 
Fecha de Ingreso: julio-2012
Ubicación: Israel
Mensajes: 360
Antigüedad: 12 años, 4 meses
Puntos: 40
Respuesta: Sacar el promedio de cada 6 productos de una tabla

Intenta el siguiente codigo:
Código SQL:
Ver original
  1. IF Object_ID('tempdb..#PC','U') IS NOT NULL DROP TABLE #PC;
  2. GO
  3.  
  4. CREATE TABLE #PC(code INT,
  5.                 model INT,
  6.                 price DECIMAL(10,2));
  7. GO
  8.  
  9. INSERT
  10. INTO    #PC(code,model,price)
  11. SELECT 1,1232,600 UNION ALL
  12. SELECT 2,1121,850 UNION ALL
  13. SELECT 3,1233,600 UNION ALL
  14. SELECT 4,1121,850 UNION ALL
  15. SELECT 5,1121,850 UNION ALL
  16. SELECT 6,1233,950 UNION ALL
  17. SELECT 7,1232,400 UNION ALL
  18. SELECT 8,1232,350 UNION ALL
  19. SELECT 9,1232,350 UNION ALL
  20. SELECT 10,1260,350 UNION ALL
  21. SELECT 11,1233,980 UNION ALL
  22. SELECT 12,1233,970;
  23.  
  24. SELECT  *,
  25.         (SELECT Avg(price) FROM #PC T2 WHERE T1.code-T2.code BETWEEN 0 AND 5) Promedio
  26. FROM    #PC T1
  27. ORDER BY code;

El resultado que yo obtengo:
Código:
code	model	price	Promedio
1	1232	600.00	600.000000
2	1121	850.00	725.000000
3	1233	600.00	683.333333
4	1121	850.00	725.000000
5	1121	850.00	750.000000
6	1233	950.00	783.333333
7	1232	400.00	750.000000
8	1232	350.00	666.666666
9	1232	350.00	625.000000
10	1260	350.00	541.666666
11	1233	980.00	563.333333
12	1233	970.00	566.666666
En filas 6 & 7 el promedio es 783.3333 y 750,
exactamente como en el ejemplo en tu pregunta.
__________________
El Castellano no es mi lengua materna: discúlpenme por los errores gramaticales.
Mi blog

Etiquetas: average, avg(), group, promedio
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:32.