Python 按GAE数据存储中的计算列排序
如何使用按计算列排序的结果进行查询?(我无法预先计算其他列中的结果以进行排序!) 示例: 在这样的RDBMS表中:Python 按GAE数据存储中的计算列排序,python,google-app-engine,google-cloud-datastore,Python,Google App Engine,Google Cloud Datastore,如何使用按计算列排序的结果进行查询?(我无法预先计算其他列中的结果以进行排序!) 示例: 在这样的RDBMS表中: TABLE products( product_id INTEGER NOT NULL, description VARCHAR(255) NOT NULL, price DECIMAL(5,2) NOT NULL, qty INTEGER NOT NULL, ); 我可以执行以下查询: SELEC
TABLE products(
product_id INTEGER NOT NULL,
description VARCHAR(255) NOT NULL,
price DECIMAL(5,2) NOT NULL,
qty INTEGER NOT NULL,
);
我可以执行以下查询:
SELECT product_id, (price * qty * {{current_tax}}) AS custom_calc
FROM products
ORDER BY custom_calc DESC;
我的问题是我有一个变量,在这种情况下{{current_tax}}。这样我就不能预先计算结果来进行排序,因为变量随时都可能发生变化
像这样的问题有一个优雅的解决方案吗
坦克 正如您在中看到的,GQL不支持SELECT语句中的任何算术运算
GQL的存在是为了方便来自SQL背景的人,但底层数据存储API更像是一个索引的k/v存储
如果
current_tax
始终是应用于price*qty
的一个积极因素,则无论如何都不会修改订单,因此我建议将price*qty
存储为一个新的产品字段,total_price
并为其创建描述索引。您不能;数据存储不支持此操作。(虽然你可以预先计算价格*数量
;当然当前税
的值不会影响排序顺序)我认为我的示例不是很好。我将在github上调查并发布我的项目。这样我可以解释问题。我的问题更像这样: