作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用groupdate
gem 对带有日期/时间的记录进行分组。我想对记录进行分组并选择带有having 子句的用户,然后用日期/月份/时间对记录进行分组。但它没有给出我想要的正确结果。例如:
User.group_by_month(:created_at).count # gives proper result but
User.joins("LEFT JOIN devices ON devices.user_id=users.id").group("users.id").having("COUNT(devices.id)=0").count #gives all users in hash while i want only count for the months.
我使用它来使用 chartkick
gem 显示图表。
任何帮助将不胜感激。
最佳答案
最后我使用 2 个查询找到了解决方法。
user_ids = User.joins("LEFT JOIN devices ON users.id=devices.user_id").group("users.id").having("count(devices.id)=0").pluck("users.id")
User.where(id: user_ids).group_by_month("created_at").count
另一种方法是在子查询中包含第一个查询。
User.where("id IN (SELECT u.id FROM users u LEFT JOIN devices ON u.id=devices.user_id GROUP BY us.id HAVING count(devices.id)=0)").group_by_month("created_at").count
关于mysql - 显式组和具有 `groupdate` gem 的having子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28337771/
我是一名优秀的程序员,十分优秀!