Tutorial Window Function con DuckDB (1Βͺ parte)
import duckdb
# Import jupysql Jupyter extension to create SQL cells
%reload_ext sql
# Initiating a DuckDB database
conn = duckdb.connect("BBDD/WindowFunction.duckdb")
%sql conn --alias duckdb
βββββββββββββββ
β name β
β varchar β
βββββββββββββββ€
β order_items β
β orders β
β products β
βββββββββββββββ
Table products
# create table products and load data into it
conn.sql("CREATE TABLE products AS\
SELECT * FROM read_csv_auto('StarVision/products.csv', header=True, sep=',')");
# query the table
conn.table("products").show()
ββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββββββββββ¬βββββββββββββ¬βββββββββββββ
β product_id β product_name β model_year β list_price β
β int64 β varchar β int64 β double β
ββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββΌβββββββββββββ€
β 1 β Trek 820 - 2016 β 2016 β 379.99 β
β 2 β Ritchey Timberwolf Frameset - 2016 β 2016 β 749.99 β
β 3 β Surly Wednesday Frameset - 2016 β 2016 β 999.99 β
β 4 β Trek Fuel EX 8 29 - 2016 β 2016 β 2899.99 β
β 5 β Heller Shagamaw Frame - 2016 β 2016 β 1320.99 β
β 6 β Surly Ice Cream Truck Frameset - 2016 β 2016 β 469.99 β
β 7 β Trek Slash 8 27.5 - 2016 β 2016 β 3999.99 β
β 8 β Trek Remedy 29 Carbon Frameset - 2016 β 2016 β 1799.99 β
β 9 β Trek Conduit+ - 2016 β 2016 β 2999.99 β
β 10 β Surly Straggler - 2016 β 2016 β 1549.0 β
β Β· β Β· β Β· β Β· β
β Β· β Β· β Β· β Β· β
β Β· β Β· β Β· β Β· β
β 312 β Electra Townie Commute 8D Ladies' - 2018 β 2018 β 699.99 β
β 313 β Electra Townie Original 1 Ladies' - 2018 β 2018 β 449.99 β
β 314 β Electra Townie Original 21D EQ Ladies' - 2018 β 2018 β 679.99 β
β 315 β Electra Townie Original 21D Ladies' - 2018 β 2018 β 559.99 β
β 316 β Trek Checkpoint ALR 4 Women's - 2019 β 2019 β 1699.99 β
β 317 β Trek Checkpoint ALR 5 - 2019 β 2019 β 1999.99 β
β 318 β Trek Checkpoint ALR 5 Women's - 2019 β 2019 β 1999.99 β
β 319 β Trek Checkpoint SL 5 Women's - 2019 β 2019 β 2799.99 β
β 320 β Trek Checkpoint SL 6 - 2019 β 2019 β 3799.99 β
β 321 β Trek Checkpoint ALR Frameset - 2019 β 2019 β 3199.99 β
ββββββββββββββ΄ββββββββββββββββββββββββββββββββββββββββββββββββ΄βββββββββββββ΄βββββββββββββ€
β 321 rows (20 shown) 4 columns β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Table orders
# create table orders and load data into it
conn.sql("CREATE TABLE orders AS\
SELECT * FROM read_csv_auto('StarVision/orders.csv', header=True, sep=',')");
# query the table
conn.table("orders").show()
ββββββββββββ¬ββββββββββββββββββββββ
β order_id β order_date β
β int64 β timestamp β
ββββββββββββΌββββββββββββββββββββββ€
β 1 β 2016-01-01 00:00:00 β
β 2 β 2016-01-01 00:00:00 β
β 3 β 2016-01-02 00:00:00 β
β 4 β 2016-01-03 00:00:00 β
β 5 β 2016-01-03 00:00:00 β
β 6 β 2016-01-04 00:00:00 β
β 7 β 2016-01-04 00:00:00 β
β 8 β 2016-01-04 00:00:00 β
β 9 β 2016-01-05 00:00:00 β
β 10 β 2016-01-05 00:00:00 β
β Β· β Β· β
β Β· β Β· β
β Β· β Β· β
β 1606 β 2018-07-10 00:00:00 β
β 1607 β 2018-07-11 00:00:00 β
β 1608 β 2018-07-12 00:00:00 β
β 1609 β 2018-08-23 00:00:00 β
β 1610 β 2018-08-25 00:00:00 β
β 1611 β 2018-09-06 00:00:00 β
β 1612 β 2018-10-21 00:00:00 β
β 1613 β 2018-11-18 00:00:00 β
β 1614 β 2018-11-28 00:00:00 β
β 1615 β 2018-12-28 00:00:00 β
ββββββββββββ΄ββββββββββββββββββββββ€
β 1615 rows (20 shown) β
ββββββββββββββββββββββββββββββββββ
Table order_items
# create table order_items and load data into it
conn.sql("CREATE TABLE order_items AS\
SELECT * FROM read_csv_auto('StarVision/order_items.csv', header=True, sep=',')");
# query the table
conn.table("order_items").show()
ββββββββββββ¬βββββββββββββ¬βββββββββββ
β order_id β product_id β discount β
β int64 β int64 β double β
ββββββββββββΌβββββββββββββΌβββββββββββ€
β 1 β 20 β 0.2 β
β 1 β 8 β 0.07 β
β 1 β 10 β 0.05 β
β 1 β 16 β 0.05 β
β 1 β 4 β 0.2 β
β 2 β 20 β 0.07 β
β 2 β 16 β 0.05 β
β 3 β 3 β 0.05 β
β 3 β 20 β 0.05 β
β 4 β 2 β 0.1 β
β Β· β Β· β Β· β
β Β· β Β· β Β· β
β Β· β Β· β Β· β
β 1612 β 293 β 0.07 β
β 1612 β 60 β 0.1 β
β 1613 β 153 β 0.07 β
β 1613 β 283 β 0.05 β
β 1614 β 124 β 0.07 β
β 1614 β 159 β 0.07 β
β 1614 β 213 β 0.2 β
β 1615 β 197 β 0.2 β
β 1615 β 214 β 0.07 β
β 1615 β 182 β 0.2 β
ββββββββββββ΄βββββββββββββ΄βββββββββββ€
β 4722 rows (20 shown) 3 columns β
ββββββββββββββββββββββββββββββββββββ
βββββββββββββββ
β name β
β varchar β
βββββββββββββββ€
β order_items β
β orders β
β products β
βββββββββββββββ
# Explicitly close the connection
conn.close()