select a,b,c from (select a,b ,c,row_number()over( order by (b/a)*1.314 desc) rn from test) where rn<1000
目的就是想去 test表里面的(b/a)*1.314最大的1000列。
由于order by 里面带表达式,导致查询效率极低。有没有什么办法可以优化下。谢谢。
目的就是想去 test表里面的(b/a)*1.314最大的1000列。
由于order by 里面带表达式,导致查询效率极低。有没有什么办法可以优化下。谢谢。
可以建个trigger在插入和修改时取值。
2楼的方法是不能改善效率的,计算汇总是用不了多少时间,但是一ORDER,就要发很多时间。3楼是个迂回的方法。以空间换时间。对于多次查询的话有优势。不过我想也没其它好办法了。。