希望所有不同用户的所有最新访问。
为此,我正在使用以下查询
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作为数据库
因此,您希望所有用户访问都具有上次访问时间。
取而代之的使用DISTINCT
功能,您可以使用GROUP
与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语法。
问题内容: 我刚遇到一个非常复杂的查询,要花8秒钟才能运行。EXPLAIN显示了一个奇怪的表顺序,即使使用FORCE INDEX提示也没有全部使用我的索引。我遇到了STRAIGHT_JOIN连接关键字,并开始用它替换一些INNER JOIN关键字。我注意到速度有了很大提高。最终,我为此查询将所有INNER JOIN关键字替换为STRAIGHT_JOIN,它现在可以在0.01秒内运行。 我的问题是何
我有一个简单的国家/地区表,其中包含名称,大陆,人口和其他一些字段。 我正在尝试使用ActiveRecord执行以下MySQL查询 选择来自大陆=“亚洲”的国家/地区的计数(*),总和(人口),AVG(人口) 我该怎么做? 我试过: 国其中(:大陆= 国其中(:大陆= 国其中(:大陆= 它们都单独工作得很好,它们都返回数字(不是一个ActiveRelation对象),这意味着您不能做类似 国其中(
ActiveRecordPlugin可以独立于java web 环境运行在任何普通的java程序中,使用方式极度简单,相对于web项目只需要手动调用一下其start() 方法即可立即使用。以下是代码示例: public class ActiveRecordTest { public static void main(String[] args) { DruidPlugin dp = n
问题内容: 我有一个组件数据库。每个组件都是特定的类型。这意味着组件和类型之间存在多对一的关系。删除类型时,我想删除所有具有该类型外键的组件。但是,如果我没记错的话,级联删除将在删除组件时删除类型。有什么办法可以做我所描述的吗? 问题答案: 这就是您要包含在组件表中的内容。 请记住,您需要使用InnoDB存储引擎:默认的MyISAM存储引擎不支持外键。
本文向大家介绍如何在BigDecimal上使用>,=,相关面试题,主要包含被问及如何在BigDecimal上使用>,=,时的应答技巧和注意事项,需要的朋友参考一下 Class的每个对象都有一个可用来将其与另一个BigDecimal进行比较的方法。然后比较的结果,或者根据需要进行比较。阅读文档,您将找到答案。 运营商,,等只能在基本数据类型等中使用,,或它们的包装类等和。 从以下文档中: 将其与指定
问题内容: 由于性能问题, 我尝试避免执行Count( )。 (即 从用户中 选择COUNT( )) 如果我在phpMyAdmin中运行以下命令,则可以: 它将返回行数。即用户数量。 但是,如果我在PHP中运行,则无法执行以下操作: 似乎PHP不希望传入两个查询。那么,我该怎么做呢? 问题答案: 仅在使用子句的情况下才有用,但仍想知道不使用会发现多少行。 考虑一下它是如何工作的: 您正在强制数据库