我有一个大约 80 列的表,这些列都是二进制值。在我的应用程序中,我能够计算每个属性的权重。我希望能够提取二进制值的总和 * 它的权重最高的前 n 行。
例如
SELECT id, CAST(attribute_1 AS int) * weight_1 + CAST(attribute_2 AS int) * weight_2 AS score WHERE some_filtering_conditions ORDER BY score DESC LIMIT n
虽然这可行,但它并没有我想要的那么快。
目前所有内容都存储在 Postgres 中,但我愿意接受其他数据库建议。现在这个表中大约有 8000 行,它不太可能增长太多,所以把它全部放到内存中并不是没有道理的,但如果可能的话,我宁愿避免这种情况。