上場会社の指標の数値から上場企業全体における偏差値を重み付きで計算しているのですが、処理に時間がかなりかかってしまいます。

Postgresの機能を使った標準偏差を求める方法は以前教えていただき

company = Company.select('stddev_pop(price) as stddev')
company.stddev

で求められることはわかったのですが、重み付きの場合はどうやって求めれかよいかわかりませんでした。
重みには時価総額を利用しており Companyモデルのmarket_capとして保存しています。

計算方法はこちらにある公式を少し変更して単純にRubyで実装しています。

https://stats.stackexchange.com/questions/6534/how-do-i-calculate-a-weighted-standard-deviation-in-excel

そもそも重み付き標準偏差をデータベースの機能として使えるかどうか自体がわかりませんでした。
やり方を知ってる方がいましたらどうか教えて下さい。

できればRailsと統合された方法を使いたいのですが、SQL文を直接発行しないと無理なのであればそちらでも構わないので知りたいです。