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

[SOLUCIONADO] Funcion AVG

Estas en el tema de Funcion AVG en el foro de SQL Server en Foros del Web. Tengo estos campos en la tabla. id campo1 en id tengo estas filas que equivalen a dos registros 1 2 en campo1 tengo estas filas ...
  #1 (permalink)  
Antiguo 13/07/2014, 20:48
 
Fecha de Ingreso: julio-2014
Mensajes: 59
Antigüedad: 9 años, 9 meses
Puntos: 0
Funcion AVG

Tengo estos campos en la tabla.

id
campo1


en id tengo estas filas que equivalen a dos registros

1
2


en campo1 tengo estas filas que equivalen a dos registros

5
9


uso la Funcion AVG

Código:
SELECT ID, AVG(CAMPO1) AS MEDIA FROM MATEMATICA GROUP BY ID;
y me sale esto

Código:
+----+----------+
| Id | Campo1 |
+----+----------+
|  1 |        5 |
|  2 |        9 |
+----+----------+
Cuando en terdia que salir asi.
Código:
+----+----------+
| Id |  Media |
+----+----------+
|  1 |      7 
|  2 |        
+----+----------+



Si lo hago por separado si me sale.
Código:
SELECT AVG(CAMPO1) AS MEDIA FROM MATEMATICA;
Pero no lo quiero asi.

+----------+
| Media |
+----------+
| 7 |
+----------+

Lo quiero asi.

Código:
+----+----------+
| Id |  Media |
+----+----------+
|  1 |      7 
|  2 |        
+----+----------+
Que debo hacer saludos y gracias por leer mi mensaje.
  #2 (permalink)  
Antiguo 13/07/2014, 21:51
 
Fecha de Ingreso: abril-2012
Ubicación: Capital Federal
Mensajes: 283
Antigüedad: 12 años
Puntos: 15
Respuesta: Funcion AVG

Hola, proba con esta query

Código SQL:
Ver original
  1. SELECT ID, (SELECT AVG(CAMPO1)
  2.             FROM MATEMATICA ) AS MEDIA
  3. FROM MATEMATICA

Te resuelve el tema del valor 7 en cada registro. Espero te sirva

Saludos

damimg
DBA Specialist
  #3 (permalink)  
Antiguo 14/07/2014, 07:44
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Funcion AVG

lo mas sencillo era obviar el campo ID en la consulta ya que AVG es una funcion de agregado(se necesita un group by para que la funcion trabaje) y como tienes 2 ids diferentes la media la calcula en base a estos Id's por lo que si quieres que sea 7 solo tenias que hacer

Código SQL:
Ver original
  1. SELECT AVG(CAMPO1) AS MEDIA FROM MATEMATICA;

ahora para que quieres los 2 id's???? los necesitas en tu consulta???
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #4 (permalink)  
Antiguo 14/07/2014, 14:04
 
Fecha de Ingreso: abril-2012
Ubicación: Capital Federal
Mensajes: 283
Antigüedad: 12 años
Puntos: 15
Respuesta: Funcion AVG

Cita:
Iniciado por Libras Ver Mensaje
lo mas sencillo era obviar el campo ID en la consulta ya que AVG es una funcion de agregado(se necesita un group by para que la funcion trabaje) y como tienes 2 ids diferentes la media la calcula en base a estos Id's por lo que si quieres que sea 7 solo tenias que hacer

Código SQL:
Ver original
  1. SELECT AVG(CAMPO1) AS MEDIA FROM MATEMATICA;

ahora para que quieres los 2 id's???? los necesitas en tu consulta???
Libras, justamente el ejemplo que le das es el que no le gusta jajaj
  #5 (permalink)  
Antiguo 14/07/2014, 14:06
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Funcion AVG

Cita:
Iniciado por damimg Ver Mensaje
Libras, justamente el ejemplo que le das es el que no le gusta jajaj
Por eso la pregunta de para que necesita los id's ;)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #6 (permalink)  
Antiguo 24/10/2014, 22:55
 
Fecha de Ingreso: julio-2014
Mensajes: 59
Antigüedad: 9 años, 9 meses
Puntos: 0
Respuesta: Funcion AVG

Ya lo resolvi era asi
Cita:
SELECT AVG(CAMPO1) AS CAMPO1 FROM MATEMATICA;
Resolvi mi problema renombrando MEDIA POR CAMPO1

Gracias a todos por responder.

Etiquetas: avg, campo, funcion, registro, select, tabla
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 01:17.