假设我有几张桌子
orders = Arel::Table.new :orders
stores = Arel::Table.new :stores
managers = Arel::Table.new :managers
一个经理有很多商店,一个商店有很多订单。
有一天,我想查询经理工作的订单的平均总数。哦,我想按商店分组。所以要明确一点,我想获得经理的平均订单总数,对于他们工作的每家商店。
假设我们已经查找了我们的经理:
manager = Manager.find(some_id)
totals = orders.where(orders[:store_id].in(manager.store_ids)).group(orders.store_id).project(orders[:total].average)
puts totals.to_sql
"SELECT AVG(`orders`.`total`) AS avg_id FROM `orders` WHERE `orders`.`store_id` IN (1, 2, 3) GROUP BY `orders`.`store_id`"
是的,效果很好。但是我怎样才能查询这些平均值的平均值呢?
获取此查询的 Arel 是什么?
"SELECT AVG(avg_id) FROM (SELECT AVG(`orders`.`total`) AS avg_id FROM `orders` WHERE `orders`.`store_id` IN (1, 2, 3) GROUP BY `orders`.`store_id`) as avg_id_alias;"
有人知道吗?