La solicitud

De Megan Collins, Directora de Ventas
Tu objetivo
Usando el CTE monthly del starter (ventas netas por mes de pedidos confirmados, 2024 y 2025), devuelve una fila por cada mes de 2025 con: month (texto, 'YYYY-MM'), net_sales, prev_month (el mes anterior), mom_pct ((net_sales / prev_month − 1) × 100), last_year (el mismo mes de 2024) y yoy_pct ((net_sales / last_year − 1) × 100). Redondea las columnas de dinero a 2 y los porcentajes a 1. Ordena por mes.
- Lee de la tabla
orderspendiente - Lee de la tabla
order_itemspendiente - Muestra exactamente
monthnet_salesprev_monthmom_pctlast_yearyoy_pctpendiente
Tu consulta
Cargando el editor…
Solución de referencia
| order_id | customer_id | order_date | status | channel |
|---|---|---|---|---|
| 1001 | 125 | 2023-01-01 20:51:19 | completed | web |
| 1002 | 156 | 2023-01-02 07:58:46 | completed | web |
| 1003 | 22 | 2023-01-02 10:25:27 | completed | marketplace |
| 1004 | 48 | 2023-01-02 11:21:51 | completed | marketplace |
Mote revisa tu resultado
Presiona Ejecutar. Cada fila que cumple el objetivo se vuelve una luciérnaga en tu linterna.
Lo que recibe Megan, y por qué
Tablas
Datos de la tienda Harbor & Pine, listos para consultar.
orders12,000 filas · 7 columnas
order_idintegercustomer_idintegerorder_datetimestampstatusvarcharchannelvarcharshipping_feedecimalcoupon_codevarchar
| order_id | customer_id | order_date | status | channel | shipping_fee | coupon_code |
|---|---|---|---|---|---|---|
| 1001 | 125 | 2023-01-01 20:51:19 | completed | web | 0.00 | NULL |
| 1002 | 156 | 2023-01-02 07:58:46 | completed | web | 0.00 | NULL |
| 1003 | 22 | 2023-01-02 10:25:27 | completed | marketplace | 4.99 | WELCOME10 |
| 1004 | 48 | 2023-01-02 11:21:51 | completed | marketplace | 4.99 | WELCOME10 |
| 1005 | 82 | 2023-01-02 11:43:36 | completed | web | 0.00 | WELCOME10 |
order_items30,338 filas · 6 columnas
order_item_idintegerorder_idintegerproduct_idintegerquantityintegerunit_pricedecimaldiscount_pctdecimal
| order_item_id | order_id | product_id | quantity | unit_price | discount_pct |
|---|---|---|---|---|---|
| 1 | 1001 | 121 | 9 | 31.99 | 0.00 |
| 2 | 1001 | 154 | 3 | 11.99 | 0.00 |
| 3 | 1002 | 154 | 4 | 11.99 | 0.00 |
| 4 | 1002 | 194 | 1 | 149.00 | 0.00 |
| 5 | 1002 | 193 | 2 | 19.99 | 0.00 |
customers2,018 filas · 9 columnas
customer_idintegerfirst_namevarcharlast_namevarcharemailvarcharcityvarcharstatevarcharsignup_datedatesegmentvarcharreferral_sourcevarchar
| customer_id | first_name | last_name | city | state | signup_date | segment | referral_source | |
|---|---|---|---|---|---|---|---|---|
| 1 | Owen | Hudson | owen.hudson@icloud.com | San Francisco | CA | 2022-06-02 | consumer | search |
| 2 | Douglas | Mendoza | dmendoza69@gmail.com | Atlanta | GA | 2022-06-02 | consumer | NULL |
| 3 | Henry | Brooks | hbrooks@lakesidecafe.com | Los Angeles | CA | 2022-06-04 | business | NULL |
| 4 | Brian | Graham | bgraham@bluecedarhomes.com | Seattle | WA | 2022-06-06 | business | |
| 5 | Kyle | Jimenez | kjimenez27@yahoo.com | Indianapolis | IN | 2022-06-07 | consumer | NULL |
products120 filas · 8 columnas
product_idintegernamevarcharcategoryvarcharsubcategoryvarcharunit_pricedecimalunit_costdecimallaunched_ondateis_activeboolean
| product_id | name | category | subcategory | unit_price | unit_cost | launched_on | is_active |
|---|---|---|---|---|---|---|---|
| 101 | Vale Velvet Loveseat | Furniture | Sofas | 1659.00 | NULL | 2023-09-11 | true |
| 102 | Alder Oak Coffee Table | Furniture | Tables | 919.00 | 503.50 | 2024-05-16 | true |
| 103 | Orchard Rattan Dining Chair | Furniture | Chairs | 789.00 | 429.87 | 2023-05-27 | true |
| 104 | Upland Oak Bookcase | Furniture | Storage | 429.00 | 214.70 | 2022-12-20 | true |
| 105 | Avery Leather Bed Frame | Furniture | Beds | 449.00 | 232.70 | 2021-08-31 | true |
returns1,673 filas · 5 columnas
return_idintegerorder_item_idintegerreturned_ondatereasonvarcharrefund_amountdecimal
| return_id | order_item_id | returned_on | reason | refund_amount |
|---|---|---|---|---|
| 1 | 14 | 2023-01-10 | damaged | 83.69 |
| 2 | 42 | 2023-01-10 | wrong_item | 19.99 |
| 3 | 105 | 2023-01-14 | wrong_item | 10.99 |
| 4 | 24 | 2023-01-16 | changed_mind | 26.99 |
| 5 | 126 | 2023-01-16 | late | 20.99 |
employees60 filas · 8 columnas
employee_idintegerfirst_namevarcharlast_namevarchardepartmentvarchartitlevarcharmanager_idintegerhire_datedatesalaryinteger
| employee_id | first_name | last_name | department | title | manager_id | hire_date | salary |
|---|---|---|---|---|---|---|---|
| 1 | Catherine | Hale | Executive | Chief Executive Officer | NULL | 2016-03-01 | 285000 |
| 2 | Robert | Kim | Executive | Chief Operating Officer | 1 | 2017-01-09 | 235000 |
| 3 | Megan | Collins | Sales | Head of Sales | 1 | 2018-04-16 | 172000 |
| 4 | Chloe | Gutierrez | Sales | Account Executive | 3 | 2020-01-21 | 72000 |
| 5 | Frank | Bell | Sales | Account Executive | 3 | 2023-05-21 | 73000 |
web_sessions40,000 filas · 7 columnas
session_idintegercustomer_idintegerstarted_attimestampdevicevarcharsourcevarcharpages_viewedintegerconvertedboolean
| session_id | customer_id | started_at | device | source | pages_viewed | converted |
|---|---|---|---|---|---|---|
| 1 | NULL | 2023-01-01 23:02:24 | mobile | paid | 1 | false |
| 2 | 18 | 2023-01-01 15:07:49 | desktop | paid | 1 | false |
| 3 | NULL | 2023-01-01 16:55:46 | desktop | direct | 7 | false |
| 4 | NULL | 2023-01-01 12:43:28 | mobile | organic | 3 | false |
| 5 | NULL | 2023-01-01 13:06:21 | mobile | social | 2 | false |
marketing_spend3,276 filas · 3 columnas
spend_datedatechannelvarcharamountdecimal
| spend_date | channel | amount |
|---|---|---|
| 2023-01-01 | paid | 492.99 |
| 2023-01-01 | 37.38 | |
| 2023-01-01 | social | 200.53 |
| 2023-01-02 | paid | 709.13 |
| 2023-01-02 | 64.13 |
La lección
Dos tasas de crecimiento
El crecimiento mes a mes (MoM) compara un mes con el anterior. El crecimiento interanual (YoY) lo compara con el mismo mes de un año antes. En un negocio sin temporadas cuentan la misma historia. Harbor & Pine tiene temporadas fuertes: noviembre y diciembre traen Black Friday, Cyber Monday y regalos de fiestas, y venden cerca del doble de un mes normal.
month net sales MoM YoY
2025-10 184,241.76 +26.6% +19.0%
2025-11 305,172.51 +65.6% -8.0%
2025-12 293,358.44 -3.9% -1.2%
2025-01 156,093.59 -47.4% +39.9%
El +65,6 % MoM de noviembre es la temporada, y pasa todos los años. Frente al noviembre pasado, las ventas bajan 8 %. El −47,4 % de enero parece un desplome y en realidad es el mejor crecimiento interanual del año.
Estacionalidad
Un patrón que se repite cada año en la misma época es estacionalidad. Cuando es fuerte, el crecimiento MoM mide sobre todo el calendario. El YoY compara lo comparable: misma temporada, mismos festivos, mismo clima. Por eso los comercios informan “el mismo período del año pasado” y por eso el mejor MoM de noviembre de una tienda puede convivir con su peor YoY.
El YoY tiene sus propias trampas: un festivo que se mueve (el Black Friday cae en una fecha distinta cada año), una promoción que se hizo el año pasado y este no, o un número distinto de fines de semana en el mes. Nómbralas en una nota al pie cuando importen.
LAG con mirada atrás
LAG(net_sales, 12) OVER (ORDER BY month) llega doce filas atrás. Eso solo funciona cuando cada mes
tiene una fila, y cuando las filas del año pasado siguen ahí cuando corre la ventana. SQL ejecuta
WHERE antes que las funciones de ventana, así que filtra a 2025 en una consulta exterior, después
de que el LAG haya visto 2024.
Errores comunes
- Crecimiento MoM como titular en un mes estacional. Es el calendario, no el desempeño.
- Filtrar antes del LAG. Enero termina con crecimiento NULL, y todos los YoY son NULL.
- Meses faltantes. Si un mes no tiene fila,
LAG(…, 12)compara en silencio con el mes equivocado. Construye primero una lista completa de meses cuando los datos puedan tener huecos.
¡Linterna encendida!
Practicaste: yoymomseasonalitylagwindow functionskpi definition
- Resuelto
- Sin pistas
- Al primer intento
