2010-08-17 45 views
3

我正尝试使用比DataMapper开箱即可支持的更有趣的GROUP BY原因。在数据映射器(ruby)中按字段使用SQL函数

我要生成的查询看起来是这样的:

SELECT SUM(downloads), SUM(uploads) FROM daily_stats GROUP BY YEARWEEK(date)

我希望能够只告诉DataMapper的东西沿着这些路线:

DailyStat.aggregate(:downloads.sum, :uploads.sum, :fields => [ :date.yearweek ])

在哪里我会开始吗?这很容易实现吗?

回答

3

我会非常喜欢同样的事情,不幸的是,dm-aggregates并不是以使这成为可能的方式书写的。

我的建议是下降到SQL,因为你收到你的表中的金额。

DataMapper.repository.adapter.select('SELECT SUM(downloads), SUM(uploads) FROM daily_stats GROUP BY YEARWEEK(date)') 

这应该给你一个结构的数组与下载和上传总结。