gpt4 book ai didi

php - 如何显示具有相应其他列最大值的唯一行

转载 作者:行者123 更新时间:2023-11-29 18:15:46 24 4
gpt4 key购买 nike

我试图通过对其他列进行分组来获取最大列值。我快要到了,但还停留在最后一点。这是我的代码

表:

      id . sys_id        . renewal
1 . aaad00101 . 0
2 . aaad00101 . 1
3 . aaad00104 . 0
4 . aaad00102 . 0
5 . aaad00101 . 2
6 . aaad00103 . 0

SQL 查询:

     "SELECT * FROM $company WHERE renewal IN (SELECT DISTINCT
MAX(renewal)FROM $company GROUP BY sys_id) ORDER BY sys_id"

结果:

     aaad00101-0
aaad00101-2
aaad00102-0
aaad00103-0
aaad00404-0

我的代码显示最大值和最小值,如前两个结果。但我希望如果显示最大值,那么它不应该在结果中显示最小值。

让我知道我在这里缺少什么。谢谢

已修复:

SQL 查询:

   "SELECT * FROM $company WHERE id IN (SELECT DISTINCT MAX(id)FROM
$company GROUP BY sys_id) ORDER BY sys_id";

最佳答案

您希望保留表中当前的所有行,并添加一个显示每个 sys_id 的最大续订值的附加列,我的说法是否正确?

这是在窗口函数中经常执行的操作,但由于 MySQL 目前不具备该功能,因此您可以通过附加连接来绕过它。

选择一个。*, b.最后更新来自公司 AS a 加入(选择 sys_id, MAX( 续订 ) AS 最后续订 来自公司 GROUP BY sys_id ) AS b USING ( sys_id ) ;

或者您是否正在寻找最新出现的更新值,我假设该值是 id 列的最大值?

如果是这种情况,您可以将所有续订值连接到一个列表中,并按 id 对列表进行排序,然后可以取出该列表中的最后一个值。

选择系统ID, SUBSTRING_INDEX( GROUP_CONCAT( 续订 ORDER BY id ),',',-1 ) AS last_renewal, MAX( id ) AS 最后出现次数来自公司按 sys_id 分组;

关于php - 如何显示具有相应其他列最大值的唯一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47037677/

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