我有一个包含~80列的表,这些列都是二进制值。在我的应用程序中,我能够计算每个属性的权重。我希望能够拉出前n行,其中二进制值*的总和是最高的。
E.g。
SELECT id,CAST(attribute_1 AS int)* weight_1 + CAST(attribute_2 AS int)* weight_2 AS得分 some_filtering_conditions ORDER BY得分DESC LIMIT n
虽然这有效,但它并不像我想的那么快。
目前所有内容都存储在Postgres中,但我会对其他数据库建议持开放态度。现在这个表中大约有8000行,并且它不太可能增长太多,所以把它全部拉到内存中并不是没有理由的,但如果可能的话,我宁愿避免这样做。