gpt4 book ai didi

sql - 如何选择未超出值的记录

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

我希望从数据库中提取一份工作 ID 列表,其中每个工作的状态都没有超过给定的标准。

对于此示例表,我想显示所有未超过状态 200 的作业 ID,并仅显示最新状态。

工作进度表

Jobid Status Date      Time
1234 100 20131001 080000
1234 200 20131001 100000
1234 300 20131001 140000
9876 100 20131014 110000
5555 100 20131015 100000
5555 200 20131016 080000

我正在寻找的结果是
Jobid Status Date      Time
9876 100 20131014 110000
5555 200 20131016 080000

数据库在 AS400 上

最佳答案

这是窗口/分析函数的一个很好的用途。

您可以使用 row_number()以获取最新状态。您可以使用 sum() over计算状态超过 200 的次数。

select jobid, Status, Date, Time
from (select jp.*,
row_number() over (partition by jobid order by date desc, time desc) as seqnum,
sum(case when status >= 200 then 1 else 0 end) over (partition by jobid) as status_200
from JobProgress jp
) jp
where status_200 = 0 and seqnum = 1;
where子句然后过滤到您要查找的行。

关于sql - 如何选择未超出值的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20034076/

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