Как вытащить данные за день по каждой криптоферме ПОМИНУТНО?

ilya12345

Новичок
в базу данных каждые 10 секунд записываются показатели (hashrate) по работе криптоферм

самих ферм несколько, запись идет в виде:

date | number_ferma| hashrate
------------------------------------------------
17:35:10 | 1 | 180
-----------------------------------------------
17:35:10 | 2 | 182
-----------------------------------------------
17:35:10 | 3 | 185
--------------------------------------------------

Хочу сделать наглядный график со статистикой с помощью "google charts".



Как вытащить данные за день/неделю по каждой ферме ПОМИНУТНО?

т.е. в итоге в графике должно быть (60 минут * 24 часов) = 1440 точек с показателем hashrate


(если нужно тип полей(например с датой ) в бд могу поменять если для запроса так будет удобнее )
 

WMix

герр M:)ller
Партнер клуба
Код:
select number_ferma, sum(hashrate) from hashrate where date between x and y group by number_ferma
что-то подобное
 

ilya12345

Новичок
Код:
select number_ferma, sum(hashrate) from hashrate where date between x and y group by number_ferma
что-то подобное
Подскажи что делать если за какую-то минуту нет статистики (ферма перезагружалась и не присылала данные) можно ли средствами sql как то заполнить эту минуту с параметром hashrate=0?

Или придется делать так:
1. получаю необходимые данные из бд
2. (в php) с помощью цикла, прогоняю данные(из бд) по массиву с датами и и если в бд нет данных за какую-то минуту подставляю 0 ?
 

fixxxer

К.О.
Партнер клуба
Если mysql, и при этом не 8-й, то проще всего циклом в php.

А вообще надо сразу писать, какая СУБД, мы тут не телепаты.
 

WMix

герр M:)ller
Партнер клуба
Код:
select f.number_ferma, ifnull(r.hashrate, '0')  as hashrate
from все_фермы f
left join hashrate r on r.number_ferma = f.number_ferma
where date between x and y
group by number_ferma
что-то подобное
 
Сверху