将提供的伪代码视为
query.orderByDescending(0.25 * "likesCount" + 0.75 * "reblogsCount");
为什么我不能以这种方式在查询上运行一个操作,以便按两个不同列的加权平均值对列表进行排序?
我真的需要制作一个新列,假设"得分",在每个列上更新或重新博客事件,然后按该列进行排序?
有没有一种方法可以在几行代码中实现我想要的解析?如果没有,什么是替代方案?
您可以使用子查询。
类似于以下伪代码的东西:
select * from (
select field1, field2, 0.25 * likesCount + 0.75 * reblogsCount as sortField
from table
) order by sortField
您还可以将您的排序条件分组为括号:
select *
from table
order by (0.25 * likesCount + 0.75 * reblogsCount)