【发布时间】:2022-01-17 15:31:51
【问题描述】:
我正在尝试编写一个条件查询: 如果最近前 5 行(按日期列)的 >=80%(4 行或更多行为 4/5*100=80%),对于 KEY 的值 =A 或 =B,则将标志从失败更改为通过整个 KEY。 下面是输入输出示例:
我在示例中用绿色突出显示了最近的行。 有人可以帮我吗?
我尝试通过以下代码找到最近的前 5 行:
select * from(
select *, row_number() over (partition by "KEY") as 'RN' FROM (
select * from tb1
order by date desc))
where "RN"<=5
不知道接下来该做什么
【问题讨论】:
-
按 KEY、DATE 分组并使用基于 COUNT(*)>4 的 CASE 表示通过/失败和值
-
向我们展示你迄今为止的尝试!?
-
为了获得更好的帮助,请避免发布images 的数据,我们无法从图像中剪切和粘贴,示例数据应该是您的问题中的consumable text ,理想情况下是 create 和 insert 语句,或者 DB<>Fiddle
-
如果 >=80% .. 对于一个 KEY 的值 =A 或 =B,则更改标志 所有值都必须相同吗?还是 2*A+2*B+С 也匹配?
-
@Akina 它应该只有 A 或 B。