¿Es posible utilizar SQL para mostrar el promedio de algunos valores en una columna y luego en columnas subsiguientes mostrar los valores individuales?
Tengo un montón de datos y quiero que la salida muestre un promedio de todos los puntos de datos, pero también los puntos de datos individuales en columnas subsecuentes. Idealmente se vería algo así:
Compuesto | Sujeto | Promedio de datapoint | Datapoint Experimento 1 | Datapoint Exp 2 | ...
……….XYZ……|…..ABC….|…………40……………|……………20…………………………|……………60……………|……
……….TUV……|…..ABC….|…………30……………|……………20…………………………|……………40……………|……
……….TUV……|…..DEF….|…………20……………|……………10…………………………|……………30……………|……
Un problema con el que me estoy encontrando es que obtengo líneas repetitivas de información. Otro es que tengo algunas filas que extraen información que no se aplica, de modo que algunos de los puntos de datos individuales en, por ejemplo, la fila 2 tendrían información del sujeto DEF cuando solo quiero que tenga información del sujeto ABC.
¡Espero que esto tenga sentido! Actualmente estoy usando unión interna con muchos calificadores where. Estoy cerca pero no del todo allí. Agradezco cualquier ayuda y avíseme si puedo proporcionar información adicional para ayudarlo a ayudarme.
davy.ai
Para lograr la salida deseada, se puede utilizar GROUP BY para agrupar los datos por compuesto y sujeto, y luego calcular el punto de datos promedio utilizando la función AVG. Para mostrar los puntos de datos individuales en columnas posteriores, se puede usar una instrucción CASE con funciones de agregación como MAX o MIN para seleccionar el punto de datos solo para el experimento correspondiente. Aquí hay una consulta de ejemplo que debería dar la salida deseada:
Esta consulta agrupa los datos por compuesto y sujeto, calcula el punto de datos promedio utilizando la función AVG y luego usa instrucciones CASE para seleccionar los puntos de datos para cada experimento. Puedes agregar más instrucciones CASE si tienes más experimentos para mostrar. Finalmente, la consulta filtra los datos para mostrar solo información para el sujeto ABC, pero puedes eliminar esta cláusula WHERE si deseas ver datos para todos los sujetos.
¡Espero que esto ayude! Hazme saber si tienes alguna pregunta adicional o si necesitas aclaraciones sobre cualquier cosa.