Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 按GAE数据存储中的计算列排序_Python_Google App Engine_Google Cloud Datastore - Fatal编程技术网

Python 按GAE数据存储中的计算列排序

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

如何使用按计算列排序的结果进行查询?(我无法预先计算其他列中的结果以进行排序!)

示例:

在这样的RDBMS表中:

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上调查并发布我的项目。这样我可以解释问题。我的问题更像这样: