gpt4 book ai didi

具有最大值的 SQL 列,其中单独的列 = 1

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

我有一个类似下面的表格:

+-----+-----------+--------+--------+
| key | timestamp | event1 | event2 |
+-----+-----------+--------+--------+
| 123 | 07:06 | 1 | 0 |
| 123 | 07:21 | 1 | 0 |
| 123 | 07:59 | 0 | 1 |
| 123 | 08:02 | 0 | 1 |
| 456 | 14:21 | 1 | 0 |
| 456 | 15:02 | 0 | 1 |
| ... | ... | ... | ... |
+-----+-----------+--------+--------+

我希望为每个键获取一行,其中接下来的两列是事件 1 的最小值和事件 2 的最大值,然后(手指交叉)两个时间之间的增量。

+-----+--------+--------+-------+
| key | event1 | event2 | delta |
+-----+--------+--------+-------+
| 123 | 07:06 | 08:02 | 00:54 |
| 456 | 14:21 | 15:02 | 00:41 |
| ... | ... | ... | ... |
+-----+--------+--------+-------+

到目前为止,我已经尝试了 max 函数,其中 event1 = 1 但是我得到了 event1 的整体最大值以及每个键值无论该键在任何时候是否具有该值。

最佳答案

或者您可以使用多个 CTE,具体取决于您的 RDBMS:

SQL Fiddle

with mins as (
select
[key],
min([timestamp]) as event1
from
table1
where
[event1] = 1
group by
[key])

,maxes as
(select
[key],
max([timestamp]) as event2
from
table1
where
[event2] = 1
group by
[key])

select
mins.[key],
mins.event1,
maxes.event2
from
mins
inner join maxes
on mins.[key] = maxes.[key]

计算增量将取决于您实际存储数据的方式。

关于具有最大值的 SQL 列,其中单独的列 = 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24872027/

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