SQL Server - Obtención de la media de edad

   
Vista:

Obtención de la media de edad

Publicado por luser (2 intervenciones) el 19/05/2014 00:20:37
Muy buenas.
Os explico mi problema, aunque de antemano os diré que soy un mero usuario con ansias de aprender, por lo que estoy muy verde en lides como os la que os expongo.
Quisiera obtener la media de edad de una columna cuyo tipo de datos es datetime. He conseguido hacerlo con la función AVG, pero, por eso de enrevesar las cosas y aprender algo más, me he liado a hacerlo sin esa función, y estoy seguro de que se puede sacar, aunque no sé ya por dónde seguir.
1
2
3
4
5
6
7
DECLARE @Numero_usuario INT
SELECT @Numero_usuario = COUNT (UsuarioID) FROM Usuarios
DECLARE @Fecha_actual DATE
SET @Fecha_actual = '--introduciría la fecha actual en tipo de dato datetime'
DECLARE @Fecha_nacimiento DATE
SELECT @Fecha_nacimiento = (SELECT cumple FROM  Usuarios WHERE UsuarioID = '1')
SELECT DATEDIFF ( year, @Fecha_nacimiento, @Fecha_actual)
Hasta aquí todo bien; el problema es que si hago SELECT * FROM Usuarios arroja error, porque sólo se espera un valor de salida para DATEDIFF...
La idea era poder extraer el DATEDIFF (year) de cada usuario, sumarlos, y dividir ese valor entre SELECT @Numero_usuario = COUNT (UsuarioID) FROM Usuarios
Muchas gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias

Obtención de la media de edad

Publicado por Isaias (3182 intervenciones) el 19/05/2014 18:54:59
No me queda muy claro cual es el problema que deseas resolver
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Obtención de la media de edad

Publicado por luser (2 intervenciones) el 19/05/2014 23:25:20
El objetivo es obtener la media de edad de los usuarios, teniendo, por una lado, en una columna, su fecha de nacimiento, y por el otro, la fecha actual (que introduzco de manera estática con SET @Fecha_actual = 'valor' (aunque bien podría utilizar la funcion GETDAY).
El problema es que si hago SELECT * FROM Usuarios arroja error (penúltima línea de código), porque sólo se espera un valor de salida para DATEDIFF... Esa línea funciona tal como está escrita arriba, dado que sólo se selecciona un usuario (en este caso aquel cuya ID es 1), pero no con SELECT * FROM Usuarios
No sé si me he explicado ahora...
Una vez que tuviese una variable con esos varios valores podría hacer una función que restase cada uno de esos valores a la fecha actual, y así obtener la media de edad.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar