Find data analyst roles
Try “data analyst intern,” “analytics intern” and “business intelligence intern.” Read which questions the team needs answered and whether the role emphasizes SQL, spreadsheets, reporting or another tool before choosing your sample.
Check the original posting’s location, academic requirements and application dates. The cited Gartner posting later in this guide is a specific example, not a guarantee of an analyst assignment or a still-open vacancy.
Start with the question and four orders
Question: what is the value of completed orders after their recorded refunds? In the fictional dataset, A is $100, B is $80, C is cancelled at $120 and D is $80. A has two line items and two refunds totaling $20.
Reconcile the answer before drawing a chart
| Calculation | Amount |
|---|---|
| Completed orders A + B + D | $100 + $80 + $80 = $260 |
| Recorded refunds on those orders | $20 |
| Completed-order value after refunds | $240 |
| Cancelled order C | Excluded by the question's definition |
Run the attached revenue_audit.py with Python 3.10 or later. It creates an in-memory SQLite database and runs its tests. Amounts in its output are integer cents: net_cents of 24000 means $240. You do not need to connect it to a real database.
Check the SQL join pitfalls
Why the two plausible shortcuts fail
After joining orders to line items, A appears twice. Summing its full order value on each line counts $100 twice and produces $360 gross instead of $260. The join changed what one row represents; it did not create another order.
SUM(DISTINCT order_value) is not the repair. B and D are different orders that happen to cost $80. Deduplicating by amount loses one and produces only $180 gross. Distinct records and distinct dollar values are different things.
The script keeps one row per order and totals refunds by order_id before joining them. That gives each completed order one value and one refund total. Check the key and row meaning before choosing an aggregation.
Extend and test the project
Add a test that could catch your own mistake
The supplied tests cover the expected total, a duplicate order key, cancelled orders, extra refunds and legitimate equal-value orders. Run them, then change the data yourself. Adding another completed $80 order should raise gross value from $260 to $340; a DISTINCT-amount query would miss it.
For a more substantial extension, put an order in September and its refund in October. A September order-cohort report and an October cash-movement report answer different questions. Decide which you are building before filtering dates.
Also state whether refund records are complete. No refund row can mean zero recorded refunds in this fixture; it does not prove that a real data feed captured every refund. A correct query cannot fix an unknown source-coverage problem.
Write the project summary
Put the result above the technical details
Your README should let someone run the analysis and check its main conclusion. A four-order project does not need a dashboard; the table and the two failed methods explain the point.
Example project summary
Check the Gartner example
Use the project for a role that needs this skill
Gartner's Summer 2027 IT Intern posting, requisition 113095, lists data science among several tracks. It targets May 2028 graduates, requires commuting distance to Stamford, Connecticut, and states an October 9, 2026 deadline and estimated $17–25 hourly range. A listed track is not a guaranteed analyst assignment.
For a data-heavy application, explain one query, one exclusion and one test you added. Credit the starting example and identify your changes. A renamed copy demonstrates less than a small extension whose behavior you understand.
Sources[1]
Choose one original practice task
Choose a task that matches a skill you want to demonstrate. Each original invented case has downloadable inputs, a separate answer key and a failure check. Build your own result, ask someone to reproduce it, then retain a dated revision. Describe it as independent work.