Как получить выбор данных за последние 7 дней? - PullRequest
0 голосов
/ 18 сентября 2018

Моя проблема: у меня есть таблица с ценой и датой.Мне нужно иметь среднюю цену за последние 7 дней. Например: у меня есть цены с сегодняшнего дня, вчера, 30 дней назад, 43 дня назад и т. Д. Мне нужно среднее значение не за последние 7 дней, а за последние 7 существующих дней.

Мой код:

SELECT AVG(price) 
FROM table 
GROUP BY date  
ORDER BY date DESC LIMIT 7

Но у меня 7 средняя цена за каждый день.Может быть, у кого-то есть другая идея

Ответы [ 2 ]

0 голосов
/ 18 сентября 2018

Используйте подзапрос, чтобы получить последние 7 существующих дней, получить самые ранние из этих дат, а затем join с таблицей.

SELECT AVG(price)
FROM table AS t1
JOIN (SELECT MIN(dateday) AS mindate
      FROM 
        (SELECT DATE(date) AS dateday
         FROM table
         GROUP BY dateday
         ORDER BY dateday DESC LIMIT 7
        ) AS x
      ) AS t2
ON t1.date >= t2.mindate
0 голосов
/ 18 сентября 2018

использовать avg функцию и подзапрос

  select avg(price)
  from
    (SELECT date,price
     FROM table
     ORDER BY date desc limit 7
    ) as t
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...