我有兩個表格與這個問題有關。如何將許多SQL查詢合併爲一個?
第一個是Company
其中has_many
Taps
。每個Tap都有一個日期字段,說明創建日期(與此處不相關的原因,不同於created_at
)。
我想繪製一個公司隨時間變化的頻率Taps
,按天分組。這意味着對於我的30天圖,我目前正在爲我的範圍內的每個Date
製作一個單獨的SQL查詢,以獲取應用程序點擊,其中:tapped_time = {some date} and :company_id = {id of the company}
。
如何在連續的範圍內獲取公司每天的點擊次數而不必爲每一天單獨查詢?
我正在使用Ruby on Rails,所以我不需要原始SQL我只需要一些幫助,我的ActiveRecord魔術。
我意識到我是愚蠢的,我可以只加載該範圍內的所有水龍頭,然後在代碼中進行過濾。但是如果任何人有一些ActiveRecord的魔法可以做到這一點,我仍然會很感興趣。 – 2012-08-15 16:11:46
使數據庫返回計數可能會快得多,而不是返回所有行並在應用程序中對它們進行計數。在SQL級別,它會像'SELECT Date,count(*)FROM Taps WHERE CompanyId = x GROUP BY Date ORDER BY Date'。有關如何在ActiveRecord級別達到此目的的建議,請參閱Catcall的答案。 – kgrittn 2012-08-15 17:59:58