gpt4 book ai didi

mysql - 查询以选择一天中的间隔

转载 作者:行者123 更新时间:2023-11-29 12:44:56 32 4
gpt4 key购买 nike

我有类似这样的表格(还有“device_id”和“timestamp”列)

day  | interval  |  value
----------------------------
1 | 14 | 63 // start of a day
1 | 14 | 83
1 | 14 | 73

1 | 15 | 23
1 | 15 | 33
1 | 15 | 50

2 | 16 | 23 // start of a day
2 | 16 | 33
2 | 16 | 50

我想选择一天中的所有间隔。这很简单。

但是,间隔可以在一天翻转之前开始,或者在过去一点结束:

day  | interval  |  value
----------------------------
7 | 14 | 63
7 | 14 | 83
8 | 14 | 73 // start of a day

8 | 15 | 23
8 | 15 | 33
8 | 15 | 50

8 | 16 | 23
8 | 16 | 33
9 | 16 | 50 // start of a day

现在我想选择所有三个间隔 - 甚至更好的间隔(主要是在当天)。

SELECT ... WHERE day = 8

仅给出开始/结束间隔的部分内容 (14, 16)。那没用,我需要完整的间隔。

如果没有解决方案,我只会执行三个查询,但可能存在一些我不知道的 SQL 技巧?

这是 MySQL,从 PHP 调用。

更直观:

  day 7           | day 8             | day 9
------------------+-------------------+---------------
###13### ###14### ###15### ###16### ###17###
... 63 83 73 23 33 50 23 33 50 ...

我想要第 8 天 -> 间隔 14、15、16 内的所有值

最佳答案

认为您正在寻找这个:

SELECT * FROM intervals 
WHERE interval IN (
SELECT DISTINCT interval FROM intervals WHERE day = 8)

这将选择所有间隔数据,其中该间隔的至少一个条目出现在第 8 天。子查询确定当天发生的唯一间隔,然后外部查询使用该间隔来选择其具体信息。

关于mysql - 查询以选择一天中的间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25587561/

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