バケットデータをntilesにmysql

私はmysqlでデータの標準的なバケットを作成しようとしています。データをいくつかの特性に沿ってN個のバケットに分割し、各エントリにバケット番号を割り当てます。エントリは、日付、パーマネント、およびボリュームで構成されます。

dte、permno、volume、day_rank

     

1986-03-07,10071,9203、NULL

テーブルの名前は「bam」です。各日付(dte)には、ボリュームの基準にランクを付けたいパーノース(ID)が多数あります。私はday_rankに各permno、dteのランクを割り当てたいと思います。成功したクエリは、ボリュームに基づいて各dteのpermnosをランク付けします。私はこの複雑なクエリでこれをやろうとしています:

 select a.dte, a.permno, count(b.volume) as rnk
 from bam a inner join bam b
 on a.dte = b.dte and (a.volume < b.volume or (a.permno=b.permno and a.volume =      b.volume))
 order by a.dte, a.volume;

しかし、これはうまく動作しますが、テーブルのサイズが合理的に大きければ、実行に1日かかるでしょう。

何か案は?

1

答えはありません

0