选择具有balance(:name,:balance)值的前5名客户,然后放置其他名称为Other和balance sum的客户

时间:2018-07-02 07:56:57

标签: sql ruby-on-rails postgresql activerecord

需要有关活动记录查询的帮助,我的客户表具有名称和余额字段。

如何进行查询以返回6个值,前5个是余额最高的客户,第6个是所有其他客户的总和?

需要选择名称和余额,对于其他名称,它将自定义名称“其他”

1 个答案:

答案 0 :(得分:2)

“划分”和“权衡”:进行两个分析,然后将结果放在一起

select * 
from ( select * from view_top_5 
                                union 
       select * from view_sum )

其中view_top_5是为您提供前5名客户的视图(或子查询),view_sum是为您提供总和的查询。要获取“所有其他其他”,您可以从以下框架中构建查询:

-- skeleton for view "view_sum"
select <what you need> 
from mytable 
where customer_id not in (select client_id 
                        from view_top_5)