我正在尝试编写一个查询,通过添加一堆不同的某些比率*权重来对结果集进行排序。我很难找到适合它的语法。剥离所有复杂性,查询看起来像这样:
select *,
(
(select count(id)/(select something else that returns a number)* 20)
+
(select count(something else)/(select another something else that returns a number) * 50)
+
etc.....
) as genNum from table order by genNum
我接近这个错误是否有更多的mysql-y方法来做到这一点?
答案 0 :(得分:0)
示例:
select
((count(id)/fruit_amount)*20)
+
((count(old)/fruit_amount)*40)
as
genNum
from
fruits
group by
id
order by
genNum
在小提琴中你会看到count(old)
将返回3 count(id)
返回6.你也可以count(*)
,它的结果相同。
<强> SQLFiddle 强>