1

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

dte、permno、volume、day_rank

1986-03-07、10071、9203、NULL

テーブルのタイトルはbamです。各日付(dte)には、ボリュームに基づいてランク付けしたい多くのpermno(id)があります。次に、各permnoのランキングをday_rankに割り当てます。したがって、クエリが成功すると、ボリュームに基づいて各dteのpermnoがランク付けされます。私はこの複雑なクエリでこれを行おうとしています:

 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日ほどかかるほど非常に低速です。

何か案は?

4

0 に答える 0