gpt4 book ai didi

mysql - 是否应该在 Group By 中使用 MAX 来检索整行数据

转载 作者:行者123 更新时间:2023-11-29 18:21:41 25 4
gpt4 key购买 nike

我有一堆 sql 列要检索。这是我的 SQL 语句:

     SELECT b.iposx_model_id,
a.mrModel, MAX(a.mrRevision) as mrRevision, a.mrApprovedBy, ...
FROM mydb1.tbl_model_revision a
INNER JOIN mydb2.model_from_revision_process b
ON b.mrModel = a.mrModel
WHERE a.mrType = 1
GROUP BY a.mrModel
ORDER BY b.iposx_model_id ASC

在我检索到的某个 mrModel 列上,这些是我正在查询的数据:

enter image description here

在我的查询中,它指出我应该获取与第三行相对应的 Max mrRevision 的数据。

但是,在运行 sql 语句时,我得到了来自第三行的 max mrRevision,它是 2。但我得到的其他列数据来自第二行,一个例子是 mrApprovedBy,它是 1035 而不是 10。为什么会发生这种情况?

最佳答案

仅对不参与聚合函数的部分列使用group by是select子句在 SQL 中已被弃用,因为工作会产生不可预测的结果

在大多数数据库和最新版本的 mysql 中,不允许使用这种 group by

要获取与最大值对应的行,您可以对与正确内容匹配的值使用联接

SELECT 
b.iposx_model_id
, a.mrModel
, t.mrRevision
, a.mrApprovedBy
, ...
FROM mydb1.tbl_model_revision a
JOIN (
select mrModel, MAX(mrRevision) as mrRevision
from mydb1.tbl_model_revision
GROUP BY a.mrModel
) t on a.mrModel = t.mrModel and a.mrRevision = t.mrRevision
JOIN mydb2.model_from_revision_process b ON b.mrModel = a.mrModel
WHERE a.mrType = 1
ORDER BY b.iposx_model_id ASC

关于mysql - 是否应该在 Group By 中使用 MAX 来检索整行数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46523046/

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