Получите самые ранние и самые последние вставленные строки в таблице, используя SQL - PullRequest
0 голосов
/ 03 июля 2019

У меня есть эта структура ...

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'

Но это дает мне все данные указанного временного диапазона,и мне просто нужно получить строку с самой ранней датой и строку с самой последней датой временного диапазона выбора, поэтому всего две строки.

Я попытался использовать MIN и MAX безуспешно.

Редакция: исправление ошибок в английском языке

Заранее спасибо

Ответы [ 3 ]

1 голос
/ 04 июля 2019

Простой метод использует 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
)
0 голосов
/ 03 июля 2019

Насколько я понимаю, вы хотите ячейку VALUE с первого и последнего свидания.Я думаю, что подзапрос будет достаточно вашего требования.И я бы все равно считал его одним SQL.

SELECT value
FROM table
WHERE date = (SELECT max(date) FROM table)
OR date = (SELECT min(date) FROM table)
0 голосов
/ 03 июля 2019
SELECT * FROM TABLE WHERE
    date = (SELECT min(date) FROM TABLE) OR
    date = (SELECT max(date) FROM TABLE)

Будет выведена первая и последняя записи (или несколько записей, если они попадают в одну и ту же дату).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...