Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm thế nào để tính toán tỷ lệ phần trăm tăng từ hàng trước đó / ngày sau khi Nhóm By phức tạp?

Vui lòng xem tham chiếu này: SQLFIDDLE

Vì vậy, bảng hiện tại của bạn với OHLC được sử dụng để lấy px_change, px_pct:) Kết quả đã được rounded để hiển thị 4 dấu thập phân về thay đổi cũng như tỷ lệ phần trăm. Null được sử dụng để hiển thị không thay đổi giá / pct vì null là một đại diện tốt hơn cho việc không thay đổi giá và không có thay đổi giá nào;)

Truy vấn:

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

Kết quả:

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%

** ĐƯỢC CẬP NHẬT BẰNG HÌNH ẢNH ĐỂ BIỂU DIỄN MỖI NGƯỜI THEO YÊU CẦU CỦA MỖI NGƯỜI HOẠT ĐỘNG TRONG Ý KIẾN ** :)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bàn khóa để đọc và viết

  2. SugarCRM - Lỗi cơ sở dữ liệu - Kích thước hàng quá lớn?

  3. Không chuyển đổi được từ loại [java.lang.Object []] sang loại

  4. Kích thước bảng Mysql trên HDD

  5. MySQL hiển thị kết quả theo thứ tự bảng chữ cái nhưng hiển thị một mục cụ thể trước danh sách được sắp xếp theo thứ tự bảng chữ cái