Mat*_*man 7 activerecord ruby-on-rails
company has_many customers
customer has_many messages
customer belongs_to company
company has_many messages
message belongs_to company
message belongs_to customer
Run Code Online (Sandbox Code Playgroud)
可以从"方向"列"发送"或"接收"消息.
我想要找到的是每天"对话"的数量,其中对话被定义为客户在一天内发送至少一条消息并接收至少一条消息(不必按此顺序),除以付费公司的数量.
如何在活动记录中获得该信息?
Message.joins("LEFT JOIN messages AS m ON messages.company_id = m.company_id")
Run Code Online (Sandbox Code Playgroud)
.where("messages.direction = 'sent' AND m.direction = 'received' AND messages.customer_id = m.customer_id AND DATE(messages.created_at) = DATE(m.created_at)")
Run Code Online (Sandbox Code Playgroud)
.select(" DISTINCT (messages.customer_id, messages.company_id, DATE(messages.created_at) )")
Run Code Online (Sandbox Code Playgroud)
.group('Date(messages.created_at)').count
Run Code Online (Sandbox Code Playgroud)
Message.joins("LEFT JOIN messages AS m ON messages.company_id = m.company_id").where("messages.direction = 'sent' AND m.direction = 'received' AND messages.customer_id = m.customer_id AND DATE(messages.created_at) = DATE(m.created_at)").select(" DISTINCT (messages.customer_id, messages.company_id, DATE(messages.created_at) )").group('Date(messages.created_at)').count
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
269 次 |
| 最近记录: |