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

Не пропусти DevConf'18 - 18 мая в Digital October | Проверенные VDS на SSD в России: Датацентр №1 от 199руб

Тема в разделе "PHP и базы данных", создана пользователем ilya12345, 10 апр 2018.

  1. ilya12345

    ilya12345 Новичок

    Сообщения:
    11
    Ваш город:
    Moskva, Москва, Россия
    Address:
    Moscow, Russia
    Country:
    Location on Map:
    в базу данных каждые 10 секунд записываются показатели (hashrate) по работе криптоферм

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

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

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

    [​IMG]

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

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


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

    WMix герр M:)ller Партнер клуба

    Сообщения:
    6.151
    Ваш город:
    Berlin
    Address:
    Berlin, Germany
    Country:
    Location on Map:
    Код:
    select number_ferma, sum(hashrate) from hashrate where date between x and y group by number_ferma
    что-то подобное
     
    ilya12345 нравится это.
  3. AnrDaemon

    AnrDaemon Продвинутый новичок

    Сообщения:
    4.360
    Ваш город:
    Moscow, Russia
    Address:
    Moscow, Russia
    Country:
    Location on Map:
  4. ilya12345

    ilya12345 Новичок

    Сообщения:
    11
    Ваш город:
    Moskva, Москва, Россия
    Address:
    Moscow, Russia
    Country:
    Location on Map:
    Подскажи что делать если за какую-то минуту нет статистики (ферма перезагружалась и не присылала данные) можно ли средствами sql как то заполнить эту минуту с параметром hashrate=0?

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

    fixxxer К.О. Партнер клуба

    Сообщения:
    12.711
    Ваш город:
    Moscow, Russia
    Address:
    Moscow, Russia
    Country:
    Location on Map:
    Если mysql, и при этом не 8-й, то проще всего циклом в php.

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

    WMix герр M:)ller Партнер клуба

    Сообщения:
    6.151
    Ваш город:
    Berlin
    Address:
    Berlin, Germany
    Country:
    Location on Map:
    Код:
    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
    
    что-то подобное