INSERT desde una consulta en SQL
Las filas a insertar pueden venir de una consulta en lugar de una lista VALUES.
INSERT INTO customer_totals (customer_id, lifetime_value)
SELECT
customer_id,
SUM(total)
FROM orders
WHERE status = 'paid'
GROUP BY customer_id;
Cómo funciona
- Las listas de columnas se alinean por posición, así que el orden del SELECT importa.
- Así se rellena una tabla existente o se guarda la foto de un reporte.
- Sin viaje de ida y vuelta por el cliente: las filas nunca salen del motor.
Palabras clave y builtins usados aquí
BYFROMGROUPINSERTINTOSELECTSUMWHERE
El intento, en números
- Líneas
- 7
- Caracteres a escribir
- 144
- Tokens
- 25
- Ritmo de tres estrellas
- 80 tpm
Al ritmo de tres estrellas de 80 tokens por minuto, este intento toma unos 19 segundos.
Paso 5 de 8 en Tablas y filas; paso 18 de 23 en Fundamentos del lenguaje.