Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Menghitung Pengembalian yang Tertaut Secara Geometris di SQL SERVER 2008

Anda memiliki dua opsi untuk mendapatkan produk di SQL Server.

1. Simulasikan menggunakan log dan eksponen:

SQL Fiddle

create table returns
(
  returnDate date,
  returnValue float
)

insert into returns values('05/31/06', -0.002271835)
insert into returns values('06/30/06', -0.001095986)
insert into returns values('07/31/06', 0.006984908)
insert into returns values('08/31/06', 0.014865360)
insert into returns values('09/30/06', 0.008938896)

select totalReturn = power
  (
    cast(10.0 as float)
    , sum(log10(returnValue + 1.0))
  ) - 1
from returns;

with tr as
(
  select totalReturn = power
  (
    cast(10.0 as float)
    , sum(log10(returnValue + 1.0))
  ) - 1
  , months = cast(count(1) as float)
  from returns
)
select annualized = power(totalReturn + 1, (1.0 / (months / 12.0))) - 1
from tr;

Ini memanfaatkan log dan eksponen untuk mensimulasikan perhitungan produk. Info lebih lanjut:Fungsi yang ditentukan pengguna .

Satu-satunya masalah di sini adalah bahwa itu akan gagal untuk pengembalian <-100%. Jika Anda tidak mengharapkan ini, tidak apa-apa, jika tidak, Anda harus menetapkan nilai apa pun <100% hingga -100%.

Anda kemudian dapat menggunakan pengembalian aktual ini untuk mendapatkan pengembalian tahunan sesuai kebutuhan.

2. Tentukan agregat khusus dengan CLR:

Lihat Buku Online .

Anda dapat membuat fungsi kustom CLR dan kemudian menautkan ini sebagai agregat untuk digunakan dalam kueri Anda. Ini lebih banyak pekerjaan dan Anda harus mengaktifkan CLR di server Anda, tetapi setelah selesai, Anda dapat menggunakannya sebanyak yang diperlukan.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Buat daftar dinamis nilai pernyataan INSERT

  2. Klausa WHERE lebih baik dieksekusi sebelum IN dan JOIN atau sesudahnya

  3. Sql query dengan join dan group by and

  4. Ekspor data kueri SQL ke Excel

  5. Ubah hasil vertikal menjadi mode horizontal (T-SQL)