sql - 在 SQL 或 GQL 或 JDOQL 中,如何查询在 2 列(差异最小)中具有最高值的行?

标签 sql algorithm google-app-engine jdoql

比如说我有一张 table :

Table: Message
| data | likes | dislikes |

我怎样才能高效找到喜欢和不喜欢最多的行,即最有争议的行。所以对于下面的例子:

{("Hello", 10, 5)
("Ola!", 5, 5)
("Ni Hao!", 2, 2)
("Wazzup!", 5, 7)}

将选择“你好”。

非常感谢任何帮助!

最佳答案

GQL(假设您使用的是应用引擎数据存储)将无法对计算进行查询。

您需要向您的模型添加另一个属性(例如称为“争议”),并在每次更改喜欢或不喜欢的数量时计算它。然后您可以对该其他属性进行简单查询(即按降序排列,然后获取前 N 条记录)。

关于sql - 在 SQL 或 GQL 或 JDOQL 中,如何查询在 2 列(差异最小)中具有最高值的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5023832/

相关文章:

mysql - MySQL 中 'SET' 两个表之间的多列更新

java - 双重签名.apk//SHA1 及其他问题

algorithm - 找到所有总和为零的唯一三元组

algorithm - Earley 无法处理图表中已包含的 epsilon 状态

java - Java 中的 Cookie 和安全性 (GAE)

mysql - 基于带有子选择的 where 语句更新 mysql 中的列

mysql - 如何从每个类别中获得前 40% 的销售贡献者?

android - 当 GAE 尝试加载 https ://www. googleapis.com/oauth2/v1/certs 时,由于 503,Google oauth 突然失败

mysql - 获取参与group by子句的所有记录

python - Google App Engine 的 Python 代码出现服务器错误