2016-05-09 99 views
0

我正在嘗試獲取滿足要求的表中的行數。如何通過滑軌控制檯獲取表中的行數

#<Ahoy::Event:123abc 
    id: "123abc", 
    visit_id: "123abc", 
    user_id: 1, 
    name: "post_succeeded", 
    properties: 
    {"info"=>nil, 
    "type"=>"post-to-host", 
    "value"=>0.1, 
    "partner"=>"Glassdoor", 
    "request"=> 
    {"url"=>"http://glassdoor.com", 
     "params"=> 
     {"v"=>"1", 
     "t.k"=>"bac", 
     "t.p"=>"92", 
     "action"=>"doJobAlert", 
     "format"=>"json", 
     "userip"=>"::1", 
     "useragent"=>"", 
     "utm_medium"=>"cpc", 
     "utm_source"=>"SimplyJobs", 
     "emailAddress"=>"[email protected]", 
     "utm_campaign"=>"simplyjobs.com", 
     "rawLocationName"=>"12345"}}, 
     "success"=>true}, 
    time: Sat, 07 May 2016 19:46:19 UTC +00:00> 

要求: '類型'=> '後到主機' 和 '夥伴'=> 'Glassdoor' 和 '成功'=>真實, '時間'=> Time.now.month /天/年

這是我的嘗試:

Ahoy::Event.where("properties ->> 'type' = ?", 'post-to-host' AND "properties ->> 'partner' = ?", 'Glassdoor' AND "properties ->> 'request' ->> 'success' = ?", true AND time: Time.now.month AND time: Time.now.day AND time: Time.now.year).count 

我不是那麼熟悉SQL,任何幫助表示讚賞。

+1

某事,這看起來並不像SQL使用where條款 - 它是什麼做的Ruby on Rails的? – cup

+0

是的,我在這裏查看文檔: https://github.com/ankane/ahoy#querying-properties – Ctpelnar1988

+1

通過表您是指表或表中的所有行滿足您的要求? – coderVishal

回答

1

閱讀上的軌道 答案將沿着這些線路

Ahoy::Event.where("properties ->> 'type' = ? AND 
properties ->> 'partner' = ? AND properties ->> 
'request' ->> 'success' = ? AND time = ?", 'post-to-host', 'Glassdoor', true , Time.now).count 
+0

根據文檔,在第一個和第二個''''中刪除''''''查詢'成功'會給出一個錯誤,刪除它給了我一個計數,所以你在正確的軌道上 – Ctpelnar1988

+0

As在前面的評論中指出,對'成功'的查詢是不正確的,進一步的測試顯示'時間'查詢也是不正確的,雖然這是朝正確方向邁出的一步,但這不是正確的答案。 – Ctpelnar1988

相關問題