导轨 计数 选择不同的

2024-03-09

我正在记录用户观看一系列视频的次数。现在我正在尝试制作一个图表,显示每天观看任何视频的用户数量。

UserVideoWatching.where("created_at >= ? AND user_id != ?",1.month.ago, User.elephant.id).group("DATE(created_at)").reorder('created_at').count

产生sql

SELECT COUNT(*) AS count_all, DATE(created_at) AS date_created_at FROM `user_video_watchings` WHERE (created_at >= '2013-01-27 10:43:24' AND user_id != 7) GROUP BY DATE(created_at) ORDER BY created_at

它会为每天观看的所有视频生成正确的结果,但正如我所说,我只想向每个用户显示一次。

我想要的sql是

SELECT COUNT(DISTINCT user_id) AS count_all, DATE(created_at) AS date_created FROM `user_video_watchings` WHERE (created_at >= '2013-01-27 10:33:18' AND user_id != 7) GROUP BY DATE(created_at) ORDER BY created_at

所以我认为

UserVideoWatching.where("created_at >= ? AND user_id != ?",1.month.ago, User.elephant.id).group("DATE(created_at)").reorder('created_at').select('COUNT(DISTINCT user_id) AS count_all, DATE(created_at) AS date_created')

会做我想做的事。但这给出了

[#<UserVideoWatching >, #<UserVideoWatching >]

而不是哈希。

有任何想法吗?

我正在使用 Rails 3.1 和 mysql


您可以使用distinct.count(:attribute_name).

(在 Rails 3 中使用:count(:user_id, distinct: true)反而)

Thus:

UserVideoWatching.
  where("created_at >= ? AND user_id != ?", 1.month.ago, User.elephant.id).
  group("DATE(created_at)").
  reorder('created_at').
  distinct.
  count(:user_id)

无法测试,但我认为这会产生您想要的 SQL。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

导轨 计数 选择不同的 的相关文章

随机推荐

  • NumPy 结构化数组的真正递归“tolist()”

    据我了解 将 NumPy 数组转换为本机 Python 列表的推荐方法是使用ndarray tolist http docs scipy org doc numpy reference generated numpy ndarray tol
  • 有没有一个工具可以对 PLSQL 进行负载测试

    我知道 utplsql 用于单元测试 有没有办法可以在循环中使用它来加载测试我的存储过程 我不想使用 JMeter 或通过任何 JDBC 驱动程序 只是想分析普通存储过程的性能 我认为单元测试工具不是正确的方法 因为您并没有真正对功能做出断
  • 你如何向新程序员解释面向对象? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我的亲戚正在学习编程 并且很难理解课程 例如 他很难理解您需要实例化它 方法无法访问其他方法中的变量 如果您更改类的一个实例中的变量 则它
  • 使用 sed 更改文件中的字符串?

    我有一个带有模板的输入文件 如下所示 我想更改版本 使用 sed Package somename Priority extra Section checkinstall Maintainer email protected cdn cgi
  • 如何在 Perl 中使用 HTTP::Async 一次发出 25 个请求?

    我正在执行大量 HTTP 请求 并选择 HTTP Async 来完成这项工作 我要发出超过 1000 个请求 如果我只是执行以下操作 请参阅下面的代码 许多请求在处理时就会超时 因为处理到达它们之前可能需要数十分钟 for my url u
  • 报告查看器控件不显示来自 SSRS 的报告

    我在 VS 2013 中使用 MS Report Viewer 10 该项目正在从 VS 2010 升级 我已经解决了一系列与报表查看器相关的问题 并让控件本身启动并运行 我在 SSRS 中有很多报告 并且我已经确认这些报告本身可以正常工作
  • View.playSoundEffect 有问题吗?

    我正在尝试播放声音效果 使用View playSoundEffec 方法 当按钮获得焦点时 问题是除非启用目标手机的声音选择 否则效果将永远不会播放 它可以从以下位置启用 Settings gt Sounds display gt Audi
  • PHP 将 Excel 导入数据库(xls 和 xlsx)

    我尝试搜索一些插件将Excel文件导入MySQL数据库 其中之一是http code google com p php excel reader http code google com p php excel reader 该工具非常强大
  • 如何使用rails运行简单的MYSQL查询

    我想使用 Rails 运行一个简单的 MYSQL 查询 Select movie title movie director from moving order by rating desc limit 5 我不想要创建模型的所有开销 我只想
  • 元组 (a,b)=(b,a) 中的成员交换在内部如何工作?

    In 55 a 5 In 56 b 6 In 57 a b b a In 58 a Out 58 6 In 59 b Out 59 5 a 和 b 的值交换在内部是如何工作的 它绝对不使用临时变量 Python 将右侧表达式与左侧赋值分开
  • android-studio的sdk管理器中没有LLDB

    I am using android studio 3 6 3 in my Manjaro Linux I am trying to run c in android studio for that i need LLDB I reinst
  • ReactJS错误编译失败'define'未定义

    我尝试编译的应用程序未使用外部 jquery 及其关联的 JS 文件进行编译 当我尝试将这些文件链接到 ReactJS 应用程序中的 HTML 页面时 它会抛出以下错误 错误是 define 未定义 no undef 此错误来自 jquer
  • 改造,回调 204 无内容响应?

    在 Android 上 我最初实现了一个像这样的 Retrofit 界面 DELETE USER API BASE URL id public void deleteUser Path id String id Callback
  • 当同级项具有不同宽度时将 Flex 项居中[重复]

    这个问题在这里已经有答案了 我知道 Flexbox 为居中项目提供了一个很好的解决方案 但是当我有 3 个项目并且我希望中心 第二个 项目相对于窗口居中时 我遇到了一个问题 而不管其他 2 个项目的大小 在我的笔中 您可以看到第二项 客户索
  • eclipse neon - 忽略 json 错误

    我的项目中只有很少的 JSON 并将它们导入 Eclipse 后Neon我在文件 和项目 上看到红色标记 抱怨 JSON 问题 我的问题是如何禁用 跳过 忽略 Eclipse Neon 中的 JSON 错误 您可以在下面配置 JSON 验证
  • jquery 文档内部或外部的函数就绪

    到目前为止 我只是将所有 jQuery 优点都放在了 document ready 函数 包括某些用户交互中使用的简单函数 但是不需要加载 DOM 文档或仅在之后调用的函数可以放置在 document ready 以及 例如 考虑一个非常简
  • 在 Python 中使用 try- except-else 是一个好习惯吗?

    在 Python 中 我时常会看到这样的块 try try this whatever except SomeException as exception Handle exception else return something try
  • JPMS ServiceLoader 没有按预期为我工作

    JPMS服务加载器不符合我的预期 我正在尝试提供一个作为可执行 jar 的桌面程序使用默认服务 单个用户可能会超载 用户提供自己的服务类 并在命令行上将其名称作为参数给出 The service package eu ngong mySer
  • 使用 MySQL 通过 JOIN 获取 GROUP BY 中的 SUM

    我在 MySQL 5 1 38 中有两个表 products id name price department 1 Fire Truck 15 00 Toys 2 Bike 75 00 Toys 3 T Shirt 18 00 Clothe
  • 导轨 计数 选择不同的

    我正在记录用户观看一系列视频的次数 现在我正在尝试制作一个图表 显示每天观看任何视频的用户数量 UserVideoWatching where created at gt AND user id 1 month ago User eleph