基于多列的订单

时间:2015-05-22 08:58:54

标签: sql ruby-on-rails ruby

假设我的表项目包含以下字段:

  • 发行数量
  • 评论数量
  • 粉丝数
  • created_at

我想基于所有字段对项目进行排序,但每个字段都有不同的优先级。即使有较少数量的评论或关注者,问题较高的项目也应该更高。 假设优先顺序为: 问题>关注者>评论> created_at

我不能使用类似的东西:

Select * from Projects ORDER BY Issue, Followers, Comments, Created_at

这首先按问题排序,然后根据粉丝等解决冲突。例如:我希望一个包含5个问题和10个评论的项目低于一个有3个问题但有50个评论的项目。

我想我需要使用一些乘法因子来按比例缩放所有内容。但是,我无法弄清楚细节。

假设:1个问题= 2个粉丝= 4个评论= 1个星期的时间创建

1 个答案:

答案 0 :(得分:3)

或许这样的事情?

Select * from Projects
ORDER BY Issue * 5 + Followers * 3 + Comments DESC, Created_at