gpt4 book ai didi

sql - Oracle - 从一组中选择最大值,如果集合为空,则从另一组中选择

转载 作者:行者123 更新时间:2023-12-04 20:20:23 25 4
gpt4 key购买 nike

我有下表:

personid INT,
takeid INT,
score INT

对于每个人,takeid 都可以取负值和正值。我需要一个查询:

1) 当给定的人至少有一个肯定的 takeid 时,从一组肯定的 takeid 中取 max(score)

2) 当所有的 takeid 都是负数时,为给定的人选择 max(score)

有人知道怎么做吗?

最佳答案

这是另一个使用 COALESCE 的选项,它查看是否有任何 takeid 大于 0,如果是,则使用其中的最大值。否则,只需使用 max(score)。

select personid, 
coalesce(max(case when takeid > 0 then score end),max(score)) maxScore
from yourtable
group by personid

关于sql - Oracle - 从一组中选择最大值,如果集合为空,则从另一组中选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16791035/

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