gpt4 book ai didi

sql - 在 WHERE 子句中选择最短日期

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

从 PostgreSQL 的角度来看:我有一个数据集,其中包含指标值、时间戳和一个标志,用于指示指标值是否属于基线或跟进期。

我想选择基线期的所有行和后续期的第一行。我无法在 WHERE 子句中使用 MIN(date),而且并不是说在所有情况下跟进期总是从同一日期开始。

有没有办法让我做类似 WHERE type = 'baseline' OR (type = 'fol' AND date <= MIN(date)) 的事情? ?

从超集的角度来看:我正在使用注释层来突出显示表示基线周期的指示线部分。然后我用不同的颜色突出显示后续阶段。我需要确保突出显示是连续的(现在基线最后日期和后续最后日期之间的线段未突出显示)。因此,我需要对基线突出显示注释层下面的图表应用过滤器,该层返回基线期和第一个后续日期的数据。

最佳答案

据我所知,有几种方法可以做到这一点:

1) 使用 UNION 有两个独立的查询

select <Query> where type = 'baseline'
UNION ALL
select <Query> where type = 'fol' order by date limit 1

2) 使用你写的 where 子句,但是像@Kushal Arya answer 一样计算子查询中的日期

3) 使用窗口函数 ROW_NUMBER

select
<Query>,
ROW_NUMBER() over (partition by type
order by date) as row_num
where
type = 'baseline' OR
(type = 'fol' AND row_num = 1)

我没有运行这些查询

关于sql - 在 WHERE 子句中选择最短日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55807801/

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