sql >> データベース >  >> RDS >> Sqlserver

SQL SERVER 2008 での幾何学的にリンクされたリターンの計算

    SQL Server で製品を入手するには、2 つのオプションがあります。

    <強い>1.対数と指数を使用してシミュレート:

    SQL フィドル

    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;
    

    これは、ログと指数を活用して積の計算をシミュレートします。詳細:ユーザー定義関数 .

    ここでの 1 つの問題は、リターンが -100% 未満の場合に失敗することです。これらが予想されない場合は問題ありません。それ以外の場合は、<100% から -100% の値を設定する必要があります。

    その後、この実際の収益を使用して、必要に応じて年間収益を得ることができます。

    2。 CLR でカスタム集計を定義します:

    オンライン ブック を参照してください。 .

    CLR カスタム関数を作成し、これをクエリで使用する集計にリンクできます。これはより多くの作業であり、サーバーで CLR を有効にする必要がありますが、完了したら必要なだけ使用できます。




    1. Java-Mysql-ユーザー'root'@'localhost'のアクセスが拒否されました(パスワードを使用:YES)

    2. パラメータによる順序

    3. ブラウザのJavaScriptからSQLServerデータベースに接続するにはどうすればよいですか?

    4. DeleteDatabaseは、プロバイダーであるOracle withEntityFrameworkではサポートされていません。