Advent of SQL. Day 10 🏰 Вот такую конструкцию я 200% ни разу не встречала и не подозревала о ней! В задаче нужно было перенести данные из таблицы1 в таблицу2 и вывести только перенесенные строчки. Но обязательно в одном запросе - эммм... а как? Дали подсказку - использовать по максимуму возможности постгри. Что ж, по первой ссылке я нашла тред на stackoverflow С помощью CTE и RETURNING можно возвращать вставленные/удаленные/обновленные строки и передавать их в следующий запрос. Наверное, можно навешивать несколько cte, строить цепочки таких перемещений и даже ETL из raw в витрину, но звучит как мазохизм 😁 В финальном запросе получилось так: ``` with moved_rows as ( delete from deliveries where ... returning * ) insert into misdelivered_presents select *, date_trunc('second', LOCALTIMESTAMP) as flagged_at, 'Invalid delivery location' as reason from moved_rows returning *``` Мы из delete передаем строки в insert, а из insert выводим на экран - это мэджик какой-то 😍 Фразы дня I'm feeling stingy - ощущаю себя скупым inexplicably - необъяснимо issue an edict - издать указ meddle in - вмешиваться muck it up - все испортить plop - плюхнуться sleigh is airborne - сани находятся в воздухе volcano rim - край вулкана 📍 Advent of SQL (с впн) 📍 SQL Advent Calendar (с впн) 📍 Мои решения @data_engineerette