gpt4 book ai didi

mysql - SQL : Select the max of two occurrences

转载 作者:行者123 更新时间:2023-12-01 00:01:36 26 4
gpt4 key购买 nike

我在 sql 中遇到了一个小问题,我无法找到构建正确语句的方法。当出现“etud”和“mod”相等时,我只需要在结果中包含具有最大“sess”的行:

etud|sess|mod|eta
1------1---M1--nv
1------2---M1--v
2------1---M1--nv
3------1---M1--v
4------1---M1--v

现在我需要的结果是:

etud|sess|mod|eta
1------2---M1--v
2------1---M1--nv
3------1---M1--v
4------1---M1--v

提前致谢。

最佳答案

这真的只是一个MAX() aggregate , 按 etudmod 分组:

SELECT
etud,
MAX(sess) AS sess,
mod
FROM yourtable
GROUP BY etud, mod

编辑问题后更新:

虽然 MySQL 允许您简单地将列添加到上面的查询中,而无需将其添加到 GROUP BY 中,但是您为该列获得的值是不确定的,如果您有多个可能的值,您无法计划返回哪一个(通常它会是第一个)。

要拉入与 MAX(sess) 匹配的剩余 eta 列,您可以加入子查询。

SELECT
main.etud,
maxsess.maxsess AS sess
main.mod,
main.eta
FROM
yourtable
JOIN (
SELECT
etud,
MAX(sess) AS maxsess,
mod
FROM yourtable
GROUP BY etud, mod
/* JOIN all 3 columns of the subquery which gets the MAX() against the rest of the table */
) maxsess ON main.etud = maxsess.etud AND main.sess = maxsess.maxsess AND main.mod = maxsess.mod

关于mysql - SQL : Select the max of two occurrences,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12831170/

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