我有这个结构...
ID date Value
732 2019-07-03 15:04:42 283.0
732 2019-07-03 15:24:07 283.2
732 2019-07-03 15:43:44 283.4
732 2019-07-03 16:03:37 283.5
732 2019-07-03 16:22:47 283.7
732 2019-07-03 16:42:25 283.8
733 2019-06-14 13:24:01 226.3
733 2019-06-14 15:09:38 228.1
733 2019-06-17 08:39:59 291.5
733 2019-06-17 10:46:20 291.7
我可以做一个简单的选择,例如:
select *
from table
where id=732 and date < '2019-07-03 16:03:37'
and date > '2019-07-03 15:24:07'
但是它给了我指定时间范围内的所有数据,我只需要获取选择时间范围内最早的DATE行和最新的DATE行,那么就只有两行。
我尝试使用MIN和MAX失败。
版本:修复英语错误
预先感谢
答案 0 :(得分:1)
一种简单的方法使用union all
和limit
:
(select t.*
from t
order by date asc
limit 1
) union all
(select t.*
from t
order by date desc
limit 1
)
答案 1 :(得分:0)
SELECT * FROM TABLE WHERE
date = (SELECT min(date) FROM TABLE) OR
date = (SELECT max(date) FROM TABLE)
这将输出第一个和最后一个记录(或多个记录,如果它们在同一日期)。
答案 2 :(得分:0)
据我了解,您希望从第一个日期和最后一个日期开始输入VALUE单元格。我认为子查询就可以满足您的要求。而且我仍然会将其视为单个SQL。
SELECT value
FROM table
WHERE date = (SELECT max(date) FROM table)
OR date = (SELECT min(date) FROM table)