如何使用 ActiveRecord 将 DISTINCT ON 与 mysql 一起使用

2024-02-07

想要所有不同用户的所有最新访问。

为此,我使用下面的查询

Event.order(time: :desc).select('DISTINCT ON(user_id) user_id, time')

出现 SQL 语法错误。

ActiveRecord::StatementInvalid (Mysql2::Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ON(user_id) user_id, time FROM `events` ORDER BY `events`.`time` DESC ' at line 1: SELECT  DISTINCT ON(user_id) user_id, time FROM `events` ORDER BY `events`.`time` DESC LIMIT 11)

事件表列名

["id", "visit_id", "user_id", "name", "properties", "time"] 

谁能帮我解决这个问题

预期输出是这样的

{ 21 => "2018-12-18 09:44:59", 42 => "2018-12-19 12:08:59"}

21是user_id,value是上次访问时间

使用mysql作为数据库


因此您希望所有用户访问都包含上次访问时间。

而不是使用DISTINCT功能,你可以使用GROUP with MAX功能。

查询看起来像

Events.group(:user_id).maximum(:time)

这输出你想要的结果

{21=>Tue, 18 Dec 2018 11:15:24 UTC +00:00, 23=>Thu, 20 Dec 2018 06:42:10 UTC +00:00}

希望这对你有用。

供参考 区别于(列)。是 PostgreSQL 语法。

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

如何使用 ActiveRecord 将 DISTINCT ON 与 mysql 一起使用 的相关文章

随机推荐

  • 无法在 Ubuntu 22.04 操作系统上通过 vscode sftp 扩展连接到 AWS EC2 服务器

    我曾经连接 Linode 和 GCP 提供的远程服务器 并通过 Sftp 扩展使用 Visual Studio Code 一切正常 但是 使用相同的配置集 我无法连接到我的 Aws EC2 服务器 以下是sftp json 敏感信息已更改
  • 如何将多个属性传递到 Angular.js 属性指令中?

    我有一个属性指令限制如下 restrict A 我需要传入两个属性 一个数字和一个函数 回调 使用指令在指令中访问它们attrs object 如果指令是元素指令 则受限制 E 我可以这样
  • std::call_once 是无锁的吗?

    我想知道 std call once 锁是否已释放 There https codereview stackexchange com questions 117468 stdonce flag and stdcall once implem
  • C# SSL 安全套接字

    我有一个用 C 编写的 运行良好的通信器应用程序 现在我需要实现与服务器的安全连接 我尝试将 Socket 和 TcpClient 对象更改为 SslStream 但出现了一些错误 首先 我使用 makecert 生成了一个 cer 证书
  • 将方法作为参数传递与直接调用方法

    我在一些示例中看到了作为参数传递的方法 如果我可以从另一种方法调用一种方法 为什么我应该将方法作为参数传递 这个设计背后的目的是什么 从一种方法调用另一种方法 使用委托或将方法作为参数传递Action 将方法作为参数传递可用于防止依赖和耦合
  • 如何仅使用 CSS 来圆化我的 div 标签区域的角?

    我使用 div 标签来定义网页中的区域 我设置了所有明显的东西 如背景 大小 填充等 但它都是非常方形的 我该如何使用onlyCSS 圆角 这里有一个简单的 HTML 文档来演示如何仅通过 CSS 来实现它
  • 如何在没有浏览器检测的情况下识别“输入”事件中的错误行为?

    我将从问题开始 当特定浏览器的某个功能的实现有错误 并且您的 JavaScript 需要知道当前浏览器是否有该有错误的实现 以便它可以使用替代策略时 如何在不进行浏览器类型嗅探的情况下确定该实现是否有错误 这通常被认为是不好的 整个情况是这
  • 将纹理复制到纹理

    我已经完成了 2 个使用共享资源的程序 在 SlimDX 和 DirectX10 上运行 一个程序将在 3D 网格上显示共享纹理 第二个程序将加载图像作为纹理 到目前为止 每次从新图像更新纹理时 我都需要传递共享处理 现在 有没有一种方法可
  • Node.JS 验证 Google 身份验证令牌

    我正在尝试使用 Express JS 框架构建 Node JS REST 服务器 该框架为移动应用程序集成了 Google 身份验证 使用的 Node JS 版本是 0 12 7 我在验证从应用程序收到的 Google 令牌时遇到问题 因为
  • 在 Pandas 中将元组中的字符串拆分为列

    我有以下内容DataFrame where Track ID是行索引 我怎样才能分割字符串stats列分成5列数字 Track ID stats 14 0 0 00924175824176 0 41 0 742016492568 0 003
  • 重复命令 while true 或 x 次(相当于 while/for 循环)

    我想尽可能多地重复这个命令sometext在该领域note 表中的几行itemNotes可以有一个或多个sometext在该领域note UPDATE itemNotes SET note SUBSTR note 0 INSTR LOWER
  • 在php中计算数组[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 如果我使用count 在我的 php 脚本中 值是zero还计数变量返回1 为什么 Why php count values always
  • 如何使用Python http.client PUT方法上传二进制/视频文件?

    我正在 Python 3 6 2 中使用 HTTP client 与 API 进行通信 为了上传文件 需要三个阶段的过程 我已经成功地使用 POST 方法进行了交谈 并且服务器按我的预期返回了数据 然而 需要上传实际文件的阶段是 PUT 方
  • Java 8方法参考使用示例

    我正在查看一个示例 该示例从与方法引用相关的当前目录中提取隐藏文件数组 如下所述 using 匿名内部类执行 File hiddenFiles new File listFiles new FileFilter public boolean
  • 在 Silverlight 5 中合并 ResourceDictonaries 中使用样式

    我的 app xaml 中有很多样式 它们都在 SL5 应用程序的页面中使用得很好 我想将这些样式移至多个资源词典 以使其更易于管理和使用 首先 我将样式复制到项目中 Styles ButtonStyles xaml 页面中的新资源字典中
  • 如何从 Dart/Flutter 中的泛型函数调用命名构造函数

    我希望能够从通用函数内部构造一个对象 我尝试了以下方法 abstract class Interface Interface func int x class Test implements Interface Test func int
  • 显示光标下的文本

    当鼠标指针放置在元素上时 我想显示一些文本 例如 如果您将光标放在对某个答案的赞成票上 它会显示 此答案很有用 您可以在下图中看到它 我什至不知道如何搜索这个 Add a title属性 https developer mozilla or
  • 无法使用服务帐户授权连接到自己的 GAE 端点 API

    我一直在拼命尝试成功授权对我使用 OAuth2 和服务帐户从 python 脚本运行的 Google App Engine GAE 项目的 API 访问 我创建了服务帐户 将服务帐户 ID 添加到 api 文件中允许的客户端 ID 将私钥从
  • 从 Swagger 规范生成 nodejs

    所以我已经使用 swagger 编辑器记录了我的整个 API 现在我有了我的 yaml 文件 我真的很困惑我现在如何接受它并生成整个 Nodejs 内容 以便所有这些函数都已经定义 然后我只需用适当的代码填充它们 Swagger 代码生成器
  • 如何使用 ActiveRecord 将 DISTINCT ON 与 mysql 一起使用

    想要所有不同用户的所有最新访问 为此 我使用下面的查询 Event order time desc select DISTINCT ON user id user id time 出现 SQL 语法错误 ActiveRecord State