Pregunta

Tengo una tabla con múltiples readings_miu_id de cada uno con múltiples lecturas de RSSI (RSSI es también el nombre del campo). Por lo tanto, actualmente tengo una hoja de datos, con muchas columnas, pero los dos más pertinentes a esta conversación ser algo como esto:

readings_miu_id  RSSI
===============  ====
11011032         -90
11011032         -81
11011032         -62
11011032         -84
11011032         -86
11010084         -84
11010084         -86
11010084         -87

y así sucesivamente.

Mi plan original era para cambiar el valor de RSSI para cada registro con el mismo readings_miu_id con la media de RSSI para que readings_miu_id (que debe tener el mismo aspecto que el anterior, excepto que los de los individuos de RSSI será reemplazado por el promedio de RSSI para que Miu ) y, a continuación, tire sólo un registro para cada readings_miu_id distinta (que estoy bastante seguro de que puedo hacer con la instrucción de selección de tipo 1 arriba). Sin embargo estoy teniendo problemas que figuran a cabo la primera parte. Las sentencias SQL que he probado que parecen que debe estar cerca son:

UPDATE analyzedCopy2 as A 
SET analyzedCopy2.RSSI = Avg(RSSI) 
where readings_miu_id = A.readings_miu_id

y

UPDATE analyzedCopy2 as A 
SET RSSI = Avg(select RSSI from analyzedCopy2 
    where readings_miu_id = A.readings_miu_id) 
WHERE readings_miu_id = A.readings_miu_id;

Ayuda por favor!

¿Fue útil?

Solución

No sé por qué desea actualizar los registros.

Si lo que desea es un promedio de lectura se puede hacer esto:

SELECT readings_miu_id, AVG(RSSI)
FROM analyzedCopy2 
GROUP BY readings_miu_id

Otros consejos

Por favor, vea esta pregunta , donde se discute un escenario similar.

La consulta que busca es algo como esto (no tengo una cáscara de SQL aquí lo que puede haber problemas de sintaxis leves):

UPDATE analyzedCopy2 AS target
INNER JOIN 
(
    select avg(RSSI) as AvgRSSI, readings_miu_id
    from analyzedCopy2 T
    group by readings_miu_id
) as source
ON target.readings_miu_id = source.readings_miu_id
SET target.RSSI = source.AvgRSSI

Ver:

ACC: Consulta de actualización Sobre la base de consulta de totales falla

"Este comportamiento es una limitación de diseño ... Hay tres métodos de trabajar alrededor de este comportamiento ..."

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top