Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Grupuj dane giełdowe OHLC w wielu przedziałach czasowych - Mysql

Wiem, że to stare pytanie, ale spójrz na to znacznie „prostsze” rozwiązanie. Istnieje sztuczka z ceną otwarcia i zamknięcia. Może Ci się spodobać.

SELECT
  FLOOR(MIN(`timestamp`)/"+period+")*"+period+" AS timestamp,
  SUM(amount) AS volume,
  SUM(price*amount)/sum(amount) AS wavg_price,
  SUBSTRING_INDEX(MIN(CONCAT(`timestamp`, '_', price)), '_', -1) AS `open`,
  MAX(price) AS high,
  MIN(price) AS low,
  SUBSTRING_INDEX(MAX(CONCAT(`timestamp`, '_', price)), '_', -1) AS `close`
FROM transactions_history -- this table has 3 columns (timestamp, amount, price)
GROUP BY FLOOR(`timestamp`/"+period+")
ORDER BY timestamp  

okres jest w sekundach



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Usuń dane ze wszystkich tabel w MYSQL

  2. PDO SQL-stan 00000, ale nadal błąd?

  3. Jak przenieść kolumny w tabeli MySQL?

  4. Znajdowanie nadchodzących urodzin za pomocą jOOQ

  5. Konwersja adresu IP na długi w MySQL