Можно ли одновременно получать две разные скользящие средние из одного и того же набора данных MySQL?MySQL: Две скользящие средние в одном запросе?
Я пытаюсь извлечь данные из базы данных MySQL, которая дает мне «сырые» данные плюс две разные скользящие средние одного и того же набора данных. Моя лучшая попытка ниже, проблема в том, что две скользящие средние, по-видимому, дают одинаковые результаты?
Кроме того, существует ли более эффективный способ запроса данных? Набор данных достаточно велик, и этот запрос занимает слишком много времени для запуска?
SELECT
t1.`DateTime`,
t1.`Positive` AS `RawData`,
(SELECT AVG(t2.`Positive`)
FROM `tbl_DATA_KeywordResults` as t2
WHERE t2.`DateTime` <= t1.`DateTime`
ORDER BY t2.`DateTime` DESC
LIMIT 96
) AS `DailyAverage`,
(SELECT AVG(t3.`Positive`)
FROM `tbl_DATA_KeywordResults` as t3
WHERE t3.`DateTime` <= t1.`DateTime`
ORDER BY t3.`DateTime` DESC
LIMIT 674
) AS `WeeklyAverage`
FROM `tbl_DATA_KeywordResults` AS t1
ORDER BY t1.`DateTime`;
Я не вижу лучшего способа сразу. Какие индексы находятся на вашем столе? – GarethD
В настоящее время нет индексного столбца (хотя добавление должно быть достаточно простым). Ключевым моментом является то, что две скользящие средние одинаковы, если я ожидаю, что они будут разными. Более эффективный запрос был бы идеальным, но правильный результат был самым важным. – AdamDynamic