и посмотреть медиа
Análisis de datos - DA SQL
и посмотреть медиа
Análisis de datos: SQL, Python.
Análisis de datos: SQL, Python.
bot de IA para clonar texto a voz y voz en Telegram. Cree audio utilizando la red neuronal de forma rápida y fácil.
Acerca del análisis de datos: bases de datos, SQL, Python y más para analistas.
MERGE в SQL Команда часто используется в ситуациях, когда данные из одной таблицы нужно перенести в другую таблицу (в т.н. ETL-процессах). Или, иначе говоря, если нужно синхронизировать данные из 2 таблиц. Допустим, у нас есть таблица customers (целевая) и new_customers (источник). И мы хотим перенести данные таким образом, что если клиент уже есть - обновить имя и дату. Если нет - добавить нового. Тогда процесс переноса будет выглядеть так: MERGE INTO customers c USING new_customers nc ON (c.id = nc.id) WHEN MATCHED THEN UPDATE SET c.name = nc.name, c.last_updated = nc.last_updated WHEN NOT MATCHED THEN INSERT (id, name, last_updated) VALUES (nc.id, nc.name, nc.last_updated) Сначала по некой аналогии с джоинами соединяем выбранные таблицы по id. Затем идет разветвление на условия со специфической командой WHEN (NOT) MATCHED (не путать с конструкцией CASE WHEN THEN - это другое): есть совпадение - делаем UPDATE. Нет - делаем INSERT 🟠Можно ли решить эту задачу без использования MERGE? Можно, но это будет не так эффективно. Например: ▶️Последовательно выполнить 2 запроса: UPDATE + INSERT или DELETE + INSERT. Но, как правило, 2 запроса всё-таки хуже одного. Также между UPDATE и INSERT могут произойти изменения в таблицах, что нарушит корректность данных. В случае с DELETE это вообще грубый способ в рамках этой задачи, т.к. это всё так же 2 запроса, еще и теряются исторические данные и нет частичного обновления (например только конкретных полей). ▶️Можно написать сложный запрос с использованием СТЕ. Но это будет банально сложнее сделать, чем просто написать конструкцию с MERGE. С точки зрения производительности неочевидно, что будет быстрее работать, так что придется сравнивать оба варианта. ▶️Еще можно попытаться решить эту задачу при помощи процедуры и цикла, но основная проблема тут будет в том, что это всё будет крайне медленно работать, особенно на больших данных.
Открыть канал и посмотреть медиаSolo los usuarios registrados pueden compartir su opinión.
¡Sé el primero en compartir tu experiencia con este recurso!