2010-08-17 74 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)') 

這應該給你一個結構的數組與下載和上傳總結。