Вопрос по sql – Как выбрать строку для вставки с тем же идентификатором в SQL?
так что в основном у меня есть таблица с именем & quot; table_1 & quot; :
ID Index STATUS TIME DESCRIPTION
1 15 pending 1:00 Started Pending
1 16 pending 1:05 still in request
1 17 pending 1:10 still in request
1 18 complete 1:20 Transaction has been completed
2 19 pending 2:25 request has been started
2 20 pending 2:30 in progress
2 21 pending 2:35 in progess still
2 22 pending 2:40 still pending
2 23 complete 2:45 Transaction Compeleted
Мне нужно вставить эти данные в мою вторую таблицу & quot; table_2 & quot; где включены только времена старта и соревнования, поэтому моя & quot; таблица_2 & quot; должно вот так:
ID Index STATUS TIME DESCRIPTION
1 15 pending 1:00 Started Pending
1 18 complete 1:20 Transaction has been completed
2 19 pending 2:25 request has been started
2 23 complete 2:45 Transaction Compeleted
если кто-то может помочь мне написать SQL-запрос для этого, я был бы очень признателен. заранее спасибо
INSERT INTO t2 (ID, STATUS, TIME)
SELECT ID, STATUS, MIN(TIME) FROM t1 t1top
WHERE EXISTS(SELECT * FROM t1 WHERE ID=t1top.ID AND STATUS='Complete')
GROUP BY ID, STATUS
ORDER BY CAST(ID AS UNSIGNED) ASC, STATUS DESC
как вставка сделана, если вы хотите увидеть результат в соответствии с вашим примером, вы должны выполнить следующее select:
SELECT ID, STATUS, TIME FROM table_1
ORDER BY CAST(ID AS UNSIGNED) ASC, STATUS DESC
это ТОЛЬКО ПРАВИЛЬНО, однако я не хочу просто ВИДЕТЬ его таким образом, он также должен быть вставлен во вторую таблицу таким образом, любая идея?
INSERT INTO table_2
SELECT id,status,min(time)
FROM table_1 AS t1
WHERE EXISTS(SELECT 1
FROM table_1
WHERE id=t1.id
AND status='complete')
GROUP BY id,status
все времена запуска, как это:
select id, status, min(time)
from table_1
where status = 'Pending'
group by id, status
затем завершение как это:
select id, status, time
from table_1
where status = 'Complete'
group by id, status
Вы можете использовать union, чтобы использовать оба, и, конечно, попробуйте:
insert into table_2