Функции агрегирования удобно возвращать NULL
, когда нет совпадений. Итак, я думаю, что это самый простой метод:
INSERT INTO history (user_id, number1, number2)
SELECT 'user1', MAX(12.3), MAX(15)
FROM old_history
WHERE user_id = 'user1';
Использование функций агрегирования MAX()
делает этот запрос агрегации, который гарантированно вернет 1 строку. Второй и третий столбцы равны NULL
, когда нет подходящих строк.