Esta semana tenemos un pequeño problema engañoso que es muy fácil de entender pero difícil de ejecutar en SQL.
Encontrará su código de configuración aquí:
create or replace table testing_data(id int autoincrement start 1 increment 1, product string, stock_amount int,date_of_check date);
insert into testing_data (product,stock_amount,date_of_check) values ('Superhero capes',1,'2022-01-01');
insert into testing_data (product,stock_amount,date_of_check) values ('Superhero capes',2,'2022-01-02');
insert into testing_data (product,stock_amount,date_of_check) values ('Superhero capes',NULL,'2022-02-01');
insert into testing_data (product,stock_amount,date_of_check) values ('Superhero capes',NULL,'2022-03-01');
insert into testing_data (product,stock_amount,date_of_check) values ('Superhero masks',5,'2022-01-01');
insert into testing_data (product,stock_amount,date_of_check) values ('Superhero masks',NULL,'2022-02-13');
insert into testing_data (product,stock_amount,date_of_check) values ('Superhero pants',6,'2022-01-01');
insert into testing_data (product,stock_amount,date_of_check) values ('Superhero pants',NULL,'2022-01-01');
insert into testing_data (product,stock_amount,date_of_check) values ('Superhero pants',3,'2022-04-01');
insert into testing_data (product,stock_amount,date_of_check) values ('Superhero pants',2,'2022-07-01');
insert into testing_data (product,stock_amount,date_of_check) values ('Superhero pants',NULL,'2022-01-01');
insert into testing_data (product,stock_amount,date_of_check) values ('Superhero pants',3,'2022-05-01');
insert into testing_data (product,stock_amount,date_of_check) values ('Superhero pants',NULL,'2022-10-01');
insert into testing_data (product,stock_amount,date_of_check) values ('Superhero masks',10,'2022-11-01');
insert into testing_data (product,stock_amount,date_of_check) values ('Superhero masks',NULL,'2022-02-14');
insert into testing_data (product,stock_amount,date_of_check) values ('Superhero masks',NULL,'2022-02-15');
insert into testing_data (product,stock_amount,date_of_check) values ('Superhero masks',NULL,'2022-02-13');
Todo el mundo ha recibido datos en el pasado que han sido perfectamente legibles para los humanos normales pero inútiles para las máquinas, un excelente ejemplo de esto es el siguiente conjunto de datos de Superhero Inc.:
La gestión del inventario ha sido un poco irregular con controles irregulares en diferentes fechas y un sistema de inventario que realmente puede necesitar algo de TLC.
Podemos extrapolar fácilmente que la cantidad de existencias no se ha completado porque no ha cambiado y que el valor anterior que se ha completado aún se aplica.
Sin embargo, traducir esto a SQL es su desafío para hoy.
Nos gustaría transformar la columna anterior, en la siguiente:
Sabemos en secreto que Snowflake tiene una manera de hacer esto un poco más fácil en comparación con otros sistemas, por lo que si REALMENTE quiere desafiarse a sí mismo, puede intentar hacerlo sin ninguna herramienta específica de Snowflake.
Recuerda que si deseas participar:
- Regístrate como miembro de Frosty Friday. Puedes hacerlo haciendo clic en la barra lateral y luego yendo a «REGISTRARSE» (ten en cuenta que unirte a nuestra lista de correo no te proporcionará una cuenta de Frosty Friday).
- Publica tu código en GitHub y asegúrate de que sea de acceso público (consulta nuestra guía si no sabes cómo hacerlo).
- Publica la URL en los comentarios del desafío.
Si tienes alguna pregunta técnica que te gustaría plantear a la comunidad, puedes hacerlo aquí, en nuestro hilo dedicado a estos retos.
Deja una respuesta
Lo siento, debes estar conectado para publicar un comentario.