Как я могу найти это на MySQL?

0

Каждый день вставка cron на data_log.table записывает журналы всех монет.

Я использую API из coinmarketcap.

Документация API: https://coinmarketcap.com/api

У меня много дубликатов с именами Cryptocurrency.

Задача состоит в том, чтобы искать между 2018-02-11 и 2018-02-18, чтобы найти монету в этот период в три раза, кто ваш рынок или ваш объем.

Я хочу искать все монеты с одним выражением на mySQL.

Мой API-интерфейс: http://127.0.0.1/db.php?json=data_log&startdate=2018-02-12&finaldate=2018-02-17

Как я могу это сделать?

Я не хочу искать одну конкретную монету, я хочу искать все монеты в этот период, получив тройку вашей ценности.

Это структура:

 'data_log'('id', 'moeda', 'moeda_simbolo', 'market_cap', 'volume', 
            'data_cadastro', 'percent_change_1h', 'percent_change_24h', 
            'percent_change_7d', 'price_usd') 
  VALUES   (1, 'Bitcoin', 'BTC', '134001640106', '6628000000.0', 
            '2018-02-11', '-1.07', '-10.47', 
            '-11.75', '7948.84')

Пример хранения:

(1313, 'Kubera Coin', 'KBR', '1807270.0', '155830.0', '2018-02-11', '-2.27', '-16.9', '-7.76', '0.0157946'),
(1314, 'Renos', 'RNS', '1788409.0', '2235.62', '2018-02-11', '2.0', '-3.49', '-4.48', '0.0536157'),
(1315, 'FujiCoin', 'FJC', '1786980.0', '2300.57', '2018-02-11', '4.67', '-2.84', '-23.1', '0.00137009'),
(1316, 'Bankcoin', 'B@', '1780694.0', '2679.29', '2018-02-11', '3.32', '348.87', '72.86', '0.173021'),
  • 0
    Если у вас есть какое-то решение в PHP, это будет очень хорошо! СПАСИБО! Мне нужно поспать. Две ночи пробовали это.
  • 0
    Я буду редактировать это, потому что я не могу сбросить все sql здесь.
Показать ещё 8 комментариев
Теги:

1 ответ

0
Лучший ответ
  1. У вас есть даты в журнале без часа. Если вы хотите увеличить детали, у вас возникнет проблема.

  2. Чтобы достичь того, чего вы хотите, вы должны суммировать значения из заданного диапазона дат и сравнивать их со значениями с начала периода.

    SELECT * 
    FROM 
        (SELECT moeda, sum(market_cap) as sum_cap, sum(volume) AS sum_volume 
         FROM data_log 
         WHERE data_cadastro >= '2018-02-11' 
           AND data_cadastro <= '2018-02-18' 
         GROUP BY moeda) 
         AS sum_log
    LEFT JOIN 
        (SELECT * FROM data_log WHERE data_cadastro = '2018-02-11') AS dl 
            ON dl.moeda = sum_log.moeda 
    WHERE (sum_cap - market_cap) / 3 > market_cap 
       OR (sum_volume - volume) / 3 > volume;
    
  • 0
    Кто-нибудь может исправить это цитирование кода?
  • 0
    Вы можете и должны сделать это сами. редактировать ответ
Показать ещё 10 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню