将数据存入ntiles mysql

时间:2011-11-25 01:27:07

标签: mysql join rank bucket

我正在尝试在mysql中对数据进行标准分段:将数据沿某些特征分成N个桶并将桶号分配给每个条目。条目包括日期,permno和音量,如下所示:

  

dte,permno,volume,day_rank

     

1986-03-07,10071,9203,NULL

该表名为bam。在每个日期(dte),有许多permnos(id)我想根据音量排名。然后我想为每个permno分配排名,dte到day_rank。因此,成功的查询将根据音量对每个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天。

有什么想法吗?

0 个答案:

没有答案