gpt4 book ai didi

mysql - 根据列的最大值从表中提取所有数据并分组到另一列

转载 作者:行者123 更新时间:2023-11-29 05:55:08 25 4
gpt4 key购买 nike

<分区>

我有一个名为 Policy 的表,例如:

Name     Version Id
Policy1 1.0.0 1
Policy2 2.0.0 2
Policy1 1.1.1 3
Policy2 2.0.1 4

我试图提取以下内容:

Name     Version Id
Policy1 1.1.1 3
Policy2 2.0.1 4

基于每个名称一个值和表中的最高版本。

我尝试了以下方法:

ActiveRecord::Base.connection.exec_query('(SELECT MAX(A.version) AS rev, A.name FROM policies A GROUP BY A.name) ')

如果我将 id 添加到组合中,如下所示:

ActiveRecord::Base.connection.exec_query('(SELECT MAX(A.version) AS rev, A.name, A.id FROM policies A GROUP BY A.name) ')

我得到错误:

ActiveRecord::StatementInvalid: Mysql2::Error: Expression #3 of SELECT             
list is not in GROUP BY clause and contains nonaggregated column
'pikto_dev.A.id' which is not functionally dependent on columns in
GROUP BY clause; this is incompatible with
sql_mode=only_full_group_by: (SELECT MAX(A.version) AS rev, A.name,
A.id FROM policies A GROUP BY A.name)`

我也尝试过类似的东西:

Policy.select(:id, "MAX(version)", :name).group(:name)

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com