Я экспериментирую со следующим запросом, чтобы получить строки на основе времени. Когда я получаю строки, я хочу усреднять значения в столбце и возвращать одну строку со средним значением как JSON. Надеюсь, это будет иметь смысл с некоторым кодом. Вот запрос PostgreSQL Я начиная с:PostgreSQL: получение среднего значения для строк, соответствующих столбцу
select row_to_json(row)
from (
SELECT "responses"."index", "responses"."created_at",
ROUND(AVG("responses"."value")) AS value
FROM "responses"
WHERE "responses"."time" = '1416177080'
GROUP BY "responses"."index", "responses"."created_at"
) row
Это производит вывод так:
{"index":4,"created_at":"2014-11-16 22:31:27","value":5}
{"index":4,"created_at":"2014-11-16 22:31:23","value":-5}
{"index":4,"created_at":"2014-11-16 22:31:24","value":0}
{"index":4,"created_at":"2014-11-16 22:31:25","value":-1}
{"index":4,"created_at":"2014-11-16 22:31:26","value":1}
(5 rows)
Когда то, что я действительно хочу это только один ряд со средним в качестве значения. Как это:
{"index_of_affiliation":4,"created_at":"2014-11-16 22:31:27","value":0}
Я чувствую, что created_at
может бросить меня, но я хотел бы вернуть значение для этого в формате JSON. Любая обратная связь о том, как я могу получить желаемую одну строку с усредненным значением, будет полезна.
Как очарование. Благодаря! – tvalent2