Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да изчислим процентното увеличение от предишния ред/ден след комплекса Group By?

Моля, разгледайте тази справка:SQLFIDDLE

Така че вашата текуща таблица с OHLC се използва за извличане на px_change, px_pct :) Резултатите са rounded за показване на 4 знака след десетичната запетая в промяната, както и в процент.Null се използва за показване на липса на промяна на цената/pct, тъй като null е по-добро представяне на липсата на промяна в цената, отколкото при нулева промяна на цената;)

Запитване:

select ticker, date_format(date,'%m-%d-%Y') as date, open, high,low,close,
pxchange,concat(round(pxpct*100,4),'%') pxpct
from (select case when ticker <> @pxticker 
        then @pxclose := null end, p.*, ([email protected]) as pxchange,
    ([email protected])/@pxclose as pxpct, (@pxclose := close),
    (@pxticker := ticker) from pricing p
cross join
    (select @pxclose := null, @pxticker := ticker
     from pricing 
     order by ticker, date limit 1)  as a
  order by ticker, date ) as b
order by ticker, date asc

Резултати:

TICKER  DATE        OPEN    HIGH    LOW     CLOSE   PXCHANGE  PXPCT
AAAE    11-26-2012  0.01    0.01    0.01    0.01    (null)    (null)
AAAE    11-27-2012  0.013   0.014   0.0083  0.014   0.004     40.0000%
AAAE    11-28-2012  0.014   0.0175  0.014   0.0165  0.0025    17.8571%
AAAE    11-29-2012  0.0175  0.0175  0.0137  0.0137  -0.0028   -16.9697%
AAMRQ   11-26-2012  0.4411  0.53    0.4411  0.529   (null)    (null)
AAMRQ   11-27-2012  0.51    0.511   0.461   0.495   -0.034    -6.4272%
AAMRQ   11-28-2012  0.482   0.49    0.43    0.464   -0.031    -6.2626%
AAMRQ   11-29-2012  0.4505  0.459   0.4411  0.459   -0.005    -1.0776%
AAMRQ   11-30-2012  0.45    0.457   0.4455  0.4568  -0.0022   -0.4793%

** АКТУАЛИЗИРАНО СЪС СНИМКА ЗА ПОКАЗВАНЕ НА СКОБИТЕ СЪГЛАСНО ИСКАНЕ НА ОП В КОМЕНТАРИ ** :)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Двоичните данни не се съхраняват правилно в MySQL

  2. MySQL:Нещо не е наред с пълнотекстово търсене - връща НЯМА резултати

  3. Как да накарам MySQL да обработва низове като SQLite, по отношение на Unicode и съпоставяне?

  4. Вмъкване на множество реда от php формуляр в базата данни

  5. Симулирайте функцията на забавяне в MySQL