gpt4 book ai didi

mysql - 使用 max(column) 获取行

转载 作者:可可西里 更新时间:2023-11-01 07:49:59 28 4
gpt4 key购买 nike

每当我使用 max 函数时,我都会以某种方式失去与其他值的所有连接,因此稍后打印的行不再与我运行 max 的列相关联。

所以我的表是:

user col1 col2 col3
1 1 2 3
1 3 4 5
2 2 3 1
3 1 1 3
3 2 4 6
4 5 1 5

如果我跑

select user, col1, col2, max(col3) as col3
from table
group by user
order by user;

我会得到

user col1 col2 col3
1 1 2 5
2 2 3 1
3 1 1 6
4 5 1 5

所以 col3 的最大值是正确的,但它没有得到该值的正确行。

我想要的是获取列的最大值并为每个用户返回该行。如果有多个最大值,它应该返回所有用户,即使它具有相同的用户 ID。

最佳答案

其他数据库(例如 MS SQL Server)不允许您将聚合值与非聚合值混合使用,只是因为您会得到错误的结果。

因此,如果您想要从最大值所在的记录中获取非聚合值,请再次连接表:

select x.user, y.col1, y.col2, x.col3
from (
select user, max(col3) as col3
from table
group by user
) x
inner join table y on y.user = x.user and y.col3 = x.col3
order by x.user

关于mysql - 使用 max(column) 获取行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11365937/

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