DataLane

Coding practice

One problem list for Python and SQL, split into paths for analysts, BI, analytics engineers, data engineers, scientists, ML, MLOps, AI engineers, and architects. On a Python problem, pick NumPy, Python, or PyTorch from the chips — same two-pane layout as SQL. Tests run in this tab.

Progress and last editor contents are stored in this browser only.

Filter by data role

One problem list for all nine DataLane roles. Open a card for coding, or jump to that role's roadmap and interview track. Easy pads are free; medium and hard unlock with Pro.

Tracks

Ordered SQL warehouse sets and Python (NumPy / PyTorch) sets. Filter by role on the tracks page.

SQL topics

Jump straight to the pattern you keep failing.

The sample warehouse

Every SQL problem and the sandbox share these tables.

orders

~200 rows

Order headers. One row per order, so amount is the order total — not a line total.

customers

~12 rows

Customer dimension. Every customer has at least one order in this seed.

order_items

~250 rows

Order lines. Some orders carry two lines, which is what makes header joins fan out.

products

~5 rows

Product dimension across three categories.

payments

~182 rows

Settlements. Cancelled orders have no payment row, which is the anti-join case.

events

~400 rows

Clickstream. payload is raw JSON — use json_extract on it.

employees

~8 rows

Org tree. manager_id points back at employee_id in the same table.

↑↓ navigate openesc close