程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何使用ActiveRecord在MySQL上使用DISTINCT ON大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何使用ActiveRecord在MySQL上使用DISTinCT ON?

开发过程中遇到如何使用ActiveRecord在MySQL上使用DISTinCT ON的问题如何解决?下面主要结合日常开发的经验,给出你关于如何使用ActiveRecord在MySQL上使用DISTinCT ON的解决方法建议,希望对你解决如何使用ActiveRecord在MySQL上使用DISTinCT ON有所启发或帮助;

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

取而代之的使用disTinCT功能,您可以使用GROUP与@H_378_5@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语法。

解决方法

希望所有不同用户的所有最新访问。

为此,我正在使用以下查询

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,值是上次访问时间

使用mysql作为数据库

大佬总结

以上是大佬教程为你收集整理的如何使用ActiveRecord在MySQL上使用DISTINCT ON全部内容,希望文章能够帮你解决如何使用ActiveRecord在MySQL上使用DISTINCT ON所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。